Vehicle middleware

ABSTRACT

The present disclosure describes a vehicle implementing one or more processing modules. These modules are configured to connect and interface with the various buses in the vehicle, where the various buses are connected with the various components of the vehicle to facilitate information transfer among the vehicle components. Each processing module is further modularized with the ability to add and replace other functional modules now or in the future. These functional modules can themselves act as distinct vehicle components. Each processing modules may hand-off processing to other modules depending on its health, processing load, or by third-party control. Thus, the plurality of processing modules helps to implement a middleware point of control to the vehicle with redundancy in processing and safety and security awareness in their applications.

CROSS REFERENCE TO RELATED APPLICATION

The present application is a continuation of and claims priority to U.S.patent application Ser. No. 13/679,476, filed Nov. 16, 2012, entitled“Vehicle Middleware,” which claims the benefits of U.S. ProvisionalApplication Ser. No. 61/560,509, filed Nov. 16, 2011; 61/637,164, filedApr. 23, 2012; and 61/663,335, filed Jun. 22, 2012, all entitled“COMPLETE VEHICLE ECOSYSTEM”, 61/646,747, filed on May 14, 2012,entitled “Branding of Electrically Propelled Vehicles Via the Generationof Specific Operating Sounds”; 61/653,275, filed on May 30, 2012,entitled “Vehicle Application Store for Console”; 61/653,264, filed onMay 30, 2012, entitled “Control of Device Features Based on VehicleState”; 61/653,563, filed on May 31, 2012, entitled “Complete VehicleEcosystem”; 61/672,483, filed on Jul. 17, 2012, entitled “VehicleClimate Control”; 61/714,016, filed on Oct. 15, 2012, entitled “VehicleMiddleware;” and 61/715,699, filed on Oct. 18, 2012, entitled “VehicleMiddleware;” each of which is incorporated herein by this reference inits entirety.

Cross reference is made to U.S. patent application Ser. No. 13/420,236,filed on Mar. 14, 2012, entitled, “Configurable Vehicle Console”; Ser.No. 13/420,240, filed on Mar. 14, 2012, entitled “Removable,Configurable Vehicle Console”; Ser. No. 13/462,593, filed on May 2,2012, entitled “Configurable Dash Display”; Ser. No. 13/462,596, filedon May 2, 2012, entitled “Configurable Heads-Up Dash Display”; Ser. No.13/679,459, filed on Nov. 16, 2012, entitled “Vehicle ComprisingMulti-Operating System”; Ser. No. 13/679,234, filed on Nov. 16, 2012,entitled “Gesture Recognition for On-Board Display”; Ser. No.13/679,412, filed on Nov. 16, 2012, entitled “Vehicle Application Storefor Console”; Ser. No. 13/679,857, filed on Nov. 16, 2012, entitled“Sharing Applications/Media Between Car and Phone (Hydroid)”; Ser. No.13/679,878, filed on Nov. 16, 2012, entitled “In-Cloud Connection forCar Multimedia”; Ser. No. 13/679,875, filed on Nov. 16, 2012, entitled“Music Streaming”; Ser. No. 13/679,676, filed on Nov. 16, 2012, entitled“Control of Device Features Based on Vehicle State”; Ser. No.13/678,673, filed on Nov. 16, 2012, entitled “Insurance Tracking”; Ser.No. 13/678,691, filed on Nov. 16, 2012, entitled “Law Breaking/BehaviorSensor”; Ser. No. 13/678,699, filed on Nov. 16, 2012, entitled“Etiquette Suggestion”; Ser. No. 13/678,710, filed on Nov. 16, 2012,entitled “Parking Space Finder Based on Parking Meter Data”; Ser. No.13/678,722, filed on Nov. 16, 2012, entitled “Parking Meter ExpiredAlert”; Ser. No. 13/678,726, filed on Nov. 16, 2012, entitled “ObjectSensing (Pedestrian Avoidance/Accident Avoidance)”; Ser. No. 13/678,735,filed on Nov. 16, 2012, entitled “Proximity Warning Relative to OtherCars”; Ser. No. 13/678,745, filed on Nov. 16, 2012, entitled “StreetSide Sensors”; Ser. No. 13/678,753, filed on Nov. 16, 2012, entitled“Car Location”; Ser. No. 13/679,441, filed on Nov. 16, 2012, entitled“Universal Bus in the Car”; Ser. No. 13/679,864, filed on Nov. 16, 2012,entitled “Mobile Hot Spot/Router/Application Share Site or Network”;Ser. No. 13/679,815, filed on Nov. 16, 2012, entitled “Universal ConsoleChassis for the Car”; Ser. No. 13/679,306, filed on Nov. 16, 2012,entitled “Method and System for Vehicle Data Collection RegardingTraffic”; Ser. No. 13/679,369, filed on Nov. 16, 2012, entitled “Methodand System for Vehicle Data Collection”; Ser. No. 13/679,680, filed onNov. 16, 2012, entitled “Communications Based on Vehicle Diagnostics andIndications”; Ser. No. 13/679,443, filed on Nov. 16, 2012, entitled“Method and System for Maintaining and Reporting Vehicle OccupantInformation”; Ser. No. 13/678,762, filed on Nov. 16, 2012, entitled“Behavioral Tracking and Vehicle Applications”; Ser. No. 13/840,240,filed on Mar. 15, 2013, entitled “Controller Area Network Bus”; Ser. No.13/678,773, filed on Nov. 16, 2012, entitled “Location InformationExchange Between Vehicle and Device”; Ser. No. 13/679,887, filed on Nov.16, 2012, entitled “In Car Communication Between Devices”; Ser. No.13/679,842, filed on Nov. 16, 2012, entitled “Configurable Hardware Unitfor Car Systems”; Ser. No. 13/679,204, filed on Nov. 16, 2012, entitled“Feature Recognition for Configuring a Vehicle Console and AssociatedDevices”; Ser. No. 13/679,350, filed on Nov. 16, 2012, entitled“Configurable Vehicle Console”; Ser. No. 13/679,358, filed on Nov. 16,2012, entitled “Configurable Dash Display”; Ser. No. 13/679,363, filedon Nov. 16, 2012, entitled “Configurable Heads-Up Dash Display”; andSer. No. 13/679,368, filed on Nov. 16, 2012, entitled “Removable,Configurable Vehicle Console”. The entire disclosures of theapplications listed above are hereby incorporated by reference, in theirentirety, for all that they teach and for all purposes.

FIELD

The disclosure relates generally to vehicle middleware systems andparticularly to vehicle middleware systems for drivers andthird-parties.

BACKGROUND

Modern vehicles use a number of communication systems and/or networks.Each of these communication systems and/or networks may have a busstructure that is open or proprietary. Each of these buses may also bespecifically designed to work in a vehicle or may be available as ageneral communication protocol. These communication systems and/ornetworks connect the various individual components of the vehiclesthrough their respective buses. Examples of proprietary vehicle busarchitecture include Controller Area Network (CAN) Bus, LocalInterconnect Network (LIN) Bus, and the various Original Equipmentmanufacturer (OEM) Bus among others. Examples of open and general busarchitecture include wired or wireless Ethernet and Low-VoltageDifferential Signaling (LVDS) among others.

Taking the CAN bus for example, the CAN bus is a serial networkdeveloped primarily for use with automotive applications. CAN bus allowsdevices and microcontrollers in a vehicle to communicate with each otherwithout a host computer.

The CAN protocol allows various devices and microcontrollers to beconnected to a single CAN bus. According to the protocol, communicationalong the CAN bus is message-based to allow messages and data to be sentfrom one connected device to another.

To facilitate communication on the CAN bus without the need of a hostcomputer, CAN features an arbitration-free transmission mechanism. A CANtransmission includes an arbitration field (message ID) representing thepriority of the message being transmitted. A dominant bit (‘0’)indicates a higher priority than a recessive bit (‘1’). For example, ina hypothetical two-bit ID CAN network, a device sending a ‘10’ ID willhave priority over a device sending a ‘11’ ID on the CAN bus. In thisexample, both devices have a recessive bit in the first bit; however,the first device has a dominant second bit which could be used toarbitrate against a recessive second bit in the second device. Thesecond device will back-off from transmitting over the bus upon thisdetermination in favor of the second device and will attempt toretransmit a few clock cycles after the first device has finishedtransmitting. It is recognized that each message ID transmitted must beunique over the CAN bus for this arbitration-free transmissionmechanism. According to the CAN specification, standard CAN (version2.0A) uses 11-bit IDs, and extended CAN (version 2.0B) uses 29-bit IDs.

The CAN specification (ISO 11898) further described two types of CANbuses, the high-speed CAN bus (ISO 11898-2) (such as for engine,suspension, and transmission controllers and safety equipment) and thelow-speed CAN bus (ISO 11898-3) (such as for less critical componentsincluding non-safety sensors). The high-speed CAN bus is designed tocarry data at high speed (up to 1 Mbit/s in some implementation). Thelow-speed CAN bus is designed to carry data at a lower speed (up to 125Kbit/s in some implementation) but is more fault tolerant than thehigh-speed CAN bus. Further, the low-speed CAN bus can serves as aback-up for the high-speed CAN bus in case there is a failure to thehigh-speed CAN bus.

As usage of the CAN standard evolves, many vehicles and systemsimplementing CAN are using both a high-speed and a low-speed CAN bus inparallel. The high-speed CAN bus carries information that is vital forvehicle operation or safety and is delivered to various part of thevehicle or system in substantially real time. For example, thehigh-speed CAN bus would be used in a situation where an airbag deploys.When sensors in the bumper or at the front of the vehicle indicate thatthe vehicle has been involved in a frontal collision, the sensors cansend priority information via the high-speed CAN bus to the airbagdeployment unit to deploy the airbag. The low-speed CAN bus would beused for other less critical applications.

A number of extensions have been proposed and used to extend thecapabilities of the various bus architectures. For example, On-BoardDiagnostics (OBD) adds support for requesting data from vehiclecomponents for diagnostics purposes using Parameter Identifiers (PIDs).While OBD is designed to work with CAN bus, OBD can be implemented towork with other general and/or OEM specific buses. Further, specificvehicle components such as the Engine Control Unit (ECU), TransmissionControl Unit (TCU), Anti-lock Braking System (ABS), and generally BodyControl Modules (BCMs) can have specific protocol extensions to workwith the various bus architectures. Further, extensions to the busarchitectures are needed to support carrying information regardingvarious environmental type issues such as emissions information tocomply with various government regulation mandates.

Vehicles, particularly passenger vehicles, are evolving rapidly withemerging safety, entertainment, and communication technologies. Existingvehicle bus protocols, which are largely designed for safety, aregenerally unsuitable for other non-safety communications, due to low busbandwidth and transmission speed. There are therefore various needs inthe art including improving information flow between vehicle components,leveraging the various communication systems and/or networks in the artto enhance vehicle safety, data security, and/or data processing, andproviding remote authorized third party (i.e. peace officers, vehiclemanufacturers, vehicle security services, and owners) access to avehicle's functions and state information while maintaining securityagainst unauthorized parties and components.

SUMMARY

These and other needs are addressed by the various aspects, embodiments,and/or configurations of the present disclosure. The present disclosureis directed to a vehicle having a variety of networking and othercapabilities.

The vehicle can include one or more of:

(a) a plurality of processing modules, a first processing module beingin an active mode whereby the first processing module is in primarycontrol of at least most vehicle functions and a second processingmodule being in a standby mode whereby the second processing module isready to assume primary control of at least most vehicle functions;

(b) an arbitration module to arbitrate hand-off conflicts betweenduplicated first and second processing modules;

(c) a health check module to determine a corresponding state of healthof each of the duplicated first and second processing modules to performat least one of critical and non-critical tasks, functions, andoperations;

(d) a displayed object movement module to move displayed objects from asource input/output system to a target input/output system, the sourceand target input/output systems corresponding to different vehicleoccupants;

(e) a media filter to apply a selected rule to filter third partysourced signals received by a vehicle processing module for presentationto a vehicle occupant via a corresponding input/output system;

(f) a network selector to select one of plural communication networkslocal to the vehicle for transmitting a selected signal;

(g) a diagnostic module to receive a warning and/or error signal from avehicle component and select a destination for the signal, the possibledestinations including a vehicle input/output system to present thewarning and/or error to a vehicle occupant, an emergency serviceprovider, an emergency responder, and a remotely located diagnosticservice to diagnose a cause of the warning and/or error signal;

(h) a remote control module to receive a request from a remote source tocommand a vehicle function, authenticate the requestor, and, whensuccessfully authenticated and when privileged to request theperformance of the vehicle function, execute or cause execution of therequest;

(i) a media controller to receive a media stream from a remote node,identify which of a plurality of vehicle input/output systems aredisabled due to operator command and/or as a result of a rule, and, whenenabled, provide the media stream to an input/output system associatedwith an associated vehicle occupant;

(j) an installation supervisor to determine, for a newly installedsoftware and/or hardware and/or other component, whether the newlyinstalled component satisfies defined functional and/or source or reuserequirements and/or restrictions for the component and/or licenserestrictions, and, when satisfied, create data structures in thecomponent and/or a memory in the vehicle to bind the component to thecurrent vehicle and thereby prevent the component from communicatingwith a processing module in a different vehicle;

(k) a computational module selector to select a computational module toperform a selected task, operation, and/or function;

(l) a network security module to isolate a component encountering asecurity breach and/or isolate a primary processing module from one ormore other components in a local vehicle network;

(m) a media controller to detect movement of a computational device froman authorized station to an unauthorized station and restrict, relativeto wireless connection to the authorized station, an operation and/orfunction of the computational device when wirelessly connected to theunauthorized station;

(n) a network controller to cache automatically streaming media inresponse to a vehicle state change, function, and/or operation;

(o) a unified communications presence reporting module to determinewhether a vehicle occupant is present and/or by what communicationchannel to contact the occupant based on a requirement of a lawapplicable to a current location of the vehicle; and

(p) a social networking module to enable processing modules of differentvehicles to wirelessly connect to exchange vehicle information.

The first and second processing modules can be in wireless communicationwith one another, such that a state of the second processing module ismaintained substantially in synchronicity with a state of the firstprocessing module to a enable a stateful failover from the firstprocessing module to the second processing module.

The arbitration module can select one of the first and second processingmodules to currently possess and/or own a token, the token indicatingwhich processing module is an active processing module and/or whichprocessing module is a standby processing module.

The health check module can perform a check and/or test, in response toan internally generated interrupt and/or request to determine a selectedprocessing module's ability to perform critical and/or non-criticalvehicle tasks, functions, and/or operations, assign a score to theselected processing module based on the check and/or test results, andcompare the score to one or more thresholds and/or to a score of adifferent processing module to determine a state of health to determinea state of health of the selected processing module.

The displayed object movement module can select the target input/outputsystem from among plural input/output systems on board the vehicle basedon input from a user of the source input/output system.

The selected rule applied by the media filter can be one or more of awhitelist, blacklist, user preference, sensed occupant context, and/orgoverning federal, state, provincial, and/or local law and/or regulationapplicable to a current sensed spatial location of the vehicle.

The network selector can select one of plural communication networkslocal to the vehicle for transmitting a selected signal based on one ormore of network/node status, signal/noise ratio, type of signal,available and/or unavailable bandwidth, network performanceparameter(s), and quality of service.

The diagnostic module can provide the warning and/or error signal to thevehicle occupant and interactively communicates a likely cause of thewarning and/or error signal to the occupant and receives a command fromthe occupant to contact one or more of an emergency service provider, anemergency responder, and a remotely located diagnostic service.

The remote control module can be associated with one or more of thevehicle owner, a law enforcement authority, a lender associated with aloan having the vehicle as collateral, and a vehicle manufacturer,wherein the requested vehicle function, is executed or caused to beexecuted notwithstanding a contrary command from the vehicle operator.

The media controller, in a dependent mode, can provide common contentsynchronously to each of the input/output systems and, in an independentmode, provide different content to different ones of the input/outputsystems.

The newly installed software and/or hardware and/or other component canbe one or more of an on-board sensor, a processing module or componentthereof, a software application, a circuit board, an expansion module orcomponent thereof, a critical or non-critical device, and a cellularupgrade module.

The computational module can be selected by the computational moduleselector from among plural computational modules, wherein the pluralcomputational modules comprise one or more vehicle processing devicesand one or more occupant computational devices, the one or more occupantcomputational devices comprising one or more of a mobile phone, personaldigital assistant, tablet computer, and laptop computer.

The computational module can be selected by the computational moduleselector from among plural computational modules, wherein the pluralcomputational modules comprise multiple software applicationscorresponding to different versions, releases, and/or vendors of acommon type of software application.

The network security module filters and/or prohibits communicationsbetween the isolated one of the component and/or processing module withother network components.

The media controller can permit a first function and/or operation to beperformed by the computational device when wirelessly connected to theauthorized station but not when wirelessly connected to the unauthorizedstation.

The network controller can cache automatically streaming media inresponse to the vehicle state changing from a parked state to anunparked state.

The unified communications presence reporting module can determine thatthe vehicle occupant is the operator of the vehicle and that the vehicleoperator is not present by a selected communication channel when thevehicle is in motion.

The present disclosure further includes a non-transient, tangiblecomputer readable medium comprising processor executable instructions toperform one or more of operations (a)-(p) and a method to perform one ormore of the operations (a)-(p).

The vehicle described in the present disclosure can provide a number ofadvantages. For example, the vehicle can provide for improved control ofdata stream management and integration to accommodate theever-increasing sophistication of each data segment and enable datasharing amongst all segments. It can enable interoperability amongstdiverse systems. It can provide an open architecture, thereby obviatingexisting constraints on design changes due to locked-in technology. Itcan enable drivers freely and conveniently to integrate his or herdigital lifestyle into a vehicle while enabling voice and fingertipactivation. It can implement a dynamic software environment and on boardvehicle network that does not need to change over technologygenerations. Car manufacturers can have the freedom to specify any typeof processor, memory or storage technology and to make appropriatechanges at any time. The architecture can integrate presentationfunctions, sensor/control functions and infotainment functions in ahighly modular extensible way ensuring that the system design can scaleup or down easily and evolve over many model years without battlingtechnological obsolescence. For example, the architecture can allow thevehicle owner and/or manufacturer to upgrade and/or add applicationengines, upgrade the in-vehicle networking capabilities, upgradeInternet connectivity, upgrade display capabilities, and migrate to highavailability capabilities, all without radical changes to the softwareenvironment and/or for inter- and intra-model line differentiation. Thevehicle can support multiple processing and expansion modules thatanchor specific functions to a selected processor. It can support avariety of embedded Electronic Control Unit (“ECU”) data sources, suchas those provided by LIN, CAN, and FlexRay, and IPv6 connectivity thatenables seamless migration to Ethernet-based sensor technology and newbus architectures supported by the AutoStar initiative. It can employ asingle data management hub, providing improved vehicle safety in theface of security threats posed by connectivity to the Ethernet. It canenable vehicle manufacturers to manage multiple display subsystems thatare unique to the subsystem location in the vehicle and deliver vehicleoccupants a personalized experience. The subsystems can include, forexample, a console display (providing information and input/outputcontrol), a configurable dashboard display, a configurable heads-updisplay, and passenger display units. Configurable displays allowdrivers to add/change gauges for non-vehicle operation information thatis displayed on the dashboard and heads-up display to suit userpreferences and needs. Direct video can be delivered through displaycontrollers and/or an interactive touch screen, optionally equipped withproximity sensors, all implemented with Ethernet-based intelligentdisplay subsystems. Handheld devices, such as personal digitalassistants, cellular phones, and tablet and laptop computers, caninterface wirelessly, via one or more tethered networks, with thevehicle's processing module(s) and be integrated into the processingresources available to perform vehicle-related tasks, operations, andfunctions. Assignment of an IPv6 address or other electronic address ona network to the vehicle can provide an address to locate the vehicle onthe Internet (or other network), simplify implementing cyber security,enable applications that support safety and data collection forpredictive analytics, enable voice-over-IP calls from the vehicle, andfurnish reliable presence information to a presence service or server.

These and other advantages will be apparent from the disclosure.

The phrases “at least one”, “one or more”, and “and/or” are open-endedexpressions that are both conjunctive and disjunctive in operation. Forexample, each of the expressions “at least one of A, B and C”, “at leastone of A, B, or C”, “one or more of A, B, and C”, “one or more of A, B,or C” and “A, B, and/or C” means A alone, B alone, C alone, A and Btogether, A and C together, B and C together, or A, B and C together.

The term “a” or “an” entity refers to one or more of that entity. Assuch, the terms “a” (or “an”), “one or more” and “at least one” can beused interchangeably herein. It is also to be noted that the terms“comprising”, “including”, and “having” can be used interchangeably.

The term “automatic” and variations thereof, as used herein, refers toany process or operation done without material human input when theprocess or operation is performed. However, a process or operation canbe automatic, even though performance of the process or operation usesmaterial or immaterial human input, if the input is received beforeperformance of the process or operation. Human input is deemed to bematerial if such input influences how the process or operation will beperformed. Human input that consents to the performance of the processor operation is not deemed to be “material”.

The term “automotive navigation system” is a satellite navigation systemdesigned for use in automobiles. It typically uses a GPS navigationdevice to acquire position data to locate the user on a road in theunit's map database. Using the road database, the unit can givedirections to other locations along roads also in its database. Deadreckoning using distance data from sensors attached to the drivetrain, agyroscope and an accelerometer can be used for greater reliability, asGPS signal loss and/or multipath can occur due to urban canyons ortunnels.

The term “bus” and variations thereof, as used herein, refers to asubsystem that transfers information and/or data between variouscomponents. A bus generally refers to the collection communicationhardware interface, interconnects, bus architecture, and/or protocoldefining the communication scheme for a communication system and/orcommunication network. A bus may also be specifically refer to a part ofa communication hardware that interfaces the communication hardware withthe interconnects that connect to other components of the correspondingcommunication network. The bus may be for a wired network, such as aphysical bus, or wireless network, such as part of an antenna orhardware that couples the communication hardware with the antenna. A busarchitecture supports a defined format in which information and/or datais arranged when sent and received through a communication network. Aprotocol may define the format and rules of communication of a busarchitecture.

The terms “communication device,” “smartphone,” and “mobile device,” andvariations thereof, as used herein, are used interchangeably and includeany type of device capable of communicating with one or more of anotherdevice and/or across a communications network, via a communicationsprotocol, and the like. Exemplary communication devices may include butare not limited to smartphones, handheld computers, laptops, netbooks,notebook computers, subnotebooks, tablet computers, scanners, portablegaming devices, phones, pagers, GPS modules, portable music players, andother Internet-enabled and/or network-connected devices.

The term “communication system” or “communication network” andvariations thereof, as used herein, refers to a collection ofcommunication components capable of one or more of transmission, relay,interconnect, control, or otherwise manipulate information or data fromat least one transmitter to at least one receiver. As such, thecommunication may include a range of systems supporting point-to-pointto broadcasting of the information or data. A communication system mayrefer to the collection individual communication hardware as well as theinterconnects associated with and connecting the individualcommunication hardware. Communication hardware may refer to dedicatedcommunication hardware or may refer a processor coupled with acommunication means (i.e. an antenna) and running software capable ofusing the communication means to send a signal within the communicationsystem. Interconnect refers some type of wired or wireless communicationlink that connects various components, such as communication hardware,within a communication system. A communication network may refer to aspecific setup of a communication system with the collection ofindividual communication hardware and interconnects having somedefinable network topography. A communication network may include wiredand/or wireless network having a pre-set to an ad hoc network structure.

The term “computer-readable medium” as used herein refers to anytangible storage and/or transmission medium that participate inproviding instructions to a processor for execution. Such a medium maytake many forms, including but not limited to, non-volatile media,volatile media, and transmission media. Non-volatile media includes, forexample, NVRAM, or magnetic or optical disks. Volatile media includesdynamic memory, such as main memory. Common forms of computer-readablemedia include, for example, a floppy disk, a flexible disk, hard disk,magnetic tape, or any other magnetic medium, magneto-optical medium, aCD-ROM, any other optical medium, punch cards, paper tape, any otherphysical medium with patterns of holes, a RAM, a PROM, and EPROM, aFLASH-EPROM, a solid state medium like a memory card, any other memorychip or cartridge, a carrier wave as described hereinafter, or any othermedium from which a computer can read. A digital file attachment toe-mail or other self-contained information archive or set of archives isconsidered a distribution medium equivalent to a tangible storagemedium. When the computer-readable media is configured as a database, itis to be understood that the database may be any type of database, suchas relational, hierarchical, object-oriented, and/or the like.Accordingly, the disclosure is considered to include a tangible storagemedium or distribution medium and prior art-recognized equivalents andsuccessor media, in which the software implementations of the presentdisclosure are stored.

The terms “dash” and “dashboard” and variations thereof, as used herein,are used interchangeably and include any panel and/or area of a vehicledisposed adjacent to an operator, user, and/or passenger. Typicaldashboards may include but are not limited to one or more control panel,instrument housing, head unit, indicator, gauge, meter, light, audioequipment, computer, screen, display, HUD unit, and graphical userinterface.

The terms “determine”, “calculate” and “compute,” and variationsthereof, as used herein, are used interchangeably and include any typeof methodology, process, mathematical operation or technique.

The term “display” refers to a portion of a screen used to display theoutput of a computer to a user.

The term “displayed image” or “displayed object” refers to an imageproduced on the display. A typical displayed image is a window ordesktop or portion thereof, such as an icon. The displayed image mayoccupy all or a portion of the display.

The term “electronic address” refers to any contactable address,including a telephone number, instant message handle, e-mail address,Universal Resource Locator (“URL”), Universal Resource Identifier(“URI”), Address of Record (“AOR”), electronic alias in a database, likeaddresses, and combinations thereof.

The terms “online community”, “e-community”, or “virtual community” meana group of people that primarily interact via a computer network, ratherthan face to face, for social, professional, educational or otherpurposes. The interaction can use a variety of media formats, includingwikis, blogs, chat rooms, Internet forums, instant messaging, email, andother forms of electronic media. Many media formats are used in socialsoftware separately or in combination, including text-based chatroomsand forums that use voice, video text or avatars.

The term “means” as used herein shall be given its broadest possibleinterpretation in accordance with 35 U.S.C., Section 112, Paragraph 6.Accordingly, a claim incorporating the term “means” shall cover allstructures, materials, or acts set forth herein, and all of theequivalents thereof. Further, the structures, materials or acts and theequivalents thereof shall include all those described in the summary ofthe invention, brief description of the drawings, detailed description,abstract, and claims themselves.

The term “module” as used herein refers to any known or later developedhardware, software, firmware, artificial intelligence, fuzzy logic, orcombination of hardware and software that is capable of performing thefunctionality associated with that element. Also, while the disclosureis presented in terms of exemplary embodiments, it should be appreciatedthat individual aspects of the disclosure can be separately claimed.

The term “presence” is a status indicator that conveys ability andwillingness of a potential communication partner—for example a user—tocommunicate. A user's client provides presence information (presencestate) via a network connection to a presence service, which is storedin what constitutes his personal availability record (called apresentity) and can be made available for distribution to other users(called watchers) to convey his availability for communication. Presenceinformation has wide application in many communication services and isone of the innovations driving the popularity of instant messaging orrecent implementations of voice over IP clients. A user client maypublish a presence state to indicate its current communication status.This published state informs others that wish to contact the user of hisavailability and willingness to communicate. The most common use ofpresence today is to display an indicator icon on instant messagingclients, typically from a choice of graphic symbols with easy-to-conveymeanings, and a list of corresponding text descriptions of each of thestates. Even when technically not the same, the “on-hook” or “off-hook”state of called telephone is an analogy, as long as the caller receivesa distinctive tone indicating unavailability or availability.

The term “satellite positioning system receiver” refers to a wirelessreceiver or transceiver to receive and/or send location signals fromand/or to a satellite positioning system, such as the Global PositioningSystem (“GPS”) (US), GLONASS (Russia), Galileo positioning system (EU),Compass navigation system (China), and Regional Navigational SatelliteSystem (India).

The term “social network service” is a service provider that buildsonline communities of people, who share interests and/or activities, orwho are interested in exploring the interests and activities of others.Most social network services are web-based and provide a variety of waysfor users to interact, such as e-mail and instant messaging services.

The term “social network” refers to a web-based social network.

The term “screen,” “touch screen,” or “touchscreen” refers to a physicalstructure that enables the user to interact with the computer bytouching areas on the screen and provides information to a user througha display. The touch screen may sense user contact in a number ofdifferent ways, such as by a change in an electrical parameter (e.g.,resistance or capacitance), acoustic wave variations, infrared radiationproximity detection, light variation detection, and the like. In aresistive touch screen, for example, normally separated conductive andresistive metallic layers in the screen pass an electrical current. Whena user touches the screen, the two layers make contact in the contactedlocation, whereby a change in electrical field is noted and thecoordinates of the contacted location calculated. In a capacitive touchscreen, a capacitive layer stores electrical charge, which is dischargedto the user upon contact with the touch screen, causing a decrease inthe charge of the capacitive layer. The decrease is measured, and thecontacted location coordinates determined. In a surface acoustic wavetouch screen, an acoustic wave is transmitted through the screen, andthe acoustic wave is disturbed by user contact. A receiving transducerdetects the user contact instance and determines the contacted locationcoordinates. The touch screen may or may not include a proximity sensorto sense a nearness of object, such as a user digit, to the screen.

The term “vehicle” refers to a device or structure for transportinganimate and/or inanimate or tangible objects (e.g., persons and/orthings), such as a self-propelled conveyance. The term “vehicle” as usedherein includes any conveyance, or model of a conveyance, where theconveyance was originally designed for the purpose of moving one or moretangible objects, such as people, animals, cargo, and the like. The term“vehicle” does not require that a conveyance moves or is capable ofmovement. Typical vehicles may include but are in no way limited tocars, trucks, motorcycles, busses, automobiles, trains, railedconveyances, boats, ships, marine conveyances, submarine conveyances,aircraft, space craft, flying machines, human-powered conveyances, andthe like.

The preceding is a simplified summary of the disclosure to provide anunderstanding of some aspects of the disclosure. This summary is neitheran extensive nor exhaustive overview of the disclosure and its variousaspects, embodiments, and/or configurations. It is intended neither toidentify key or critical elements of the disclosure nor to delineate thescope of the disclosure but to present selected concepts of thedisclosure in a simplified form as an introduction to the more detaileddescription presented below. As will be appreciated, other aspects,embodiments, and/or configurations of the disclosure are possibleutilizing, alone or in combination, one or more of the features setforth above or described in detail below.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a vehicle configured in accordance with an embodiment;

FIG. 2 is a block diagram of a processing module according to anembodiment;

FIG. 3 depicts a vehicle implementing processing modules configured inaccording with an embodiment;

FIG. 4 depicts a flow diagram of a health-check method according to anembodiment;

FIG. 5 depicts a flow diagram of a hand-off procedure method accordingto an embodiment;

FIG. 6 depicts a flow diagram of a system stand-by method according toan embodiment;

FIG. 7 depicts a flow diagram of a processor off-load method accordingto an embodiment;

FIG. 8 depicts a flow diagram according to an embodiment;

FIG. 9 depicts a flow diagram according to an embodiment;

FIG. 10 depicts a flow diagram according to an embodiment;

FIG. 11 depicts a flow diagram according to an embodiment;

FIG. 12 depicts a flow diagram according to an embodiment;

FIG. 13 depicts a flow diagram according to an embodiment;

FIG. 14 depicts a flow diagram according to an embodiment;

FIG. 15 is a block diagram of a computational system according to anembodiment;

FIG. 16 is a block diagram of an input/output system according to anembodiment;

FIG. 17 depicts a flow diagram according to an embodiment;

FIG. 18 depicts a flow diagram according to an embodiment;

FIG. 19 depicts a flow diagram according to an embodiment;

FIG. 20 is a block diagram of a vehicle computational system accordingto an embodiment;

FIG. 21 depicts a flow diagram according to an embodiment;

FIGS. 22A-B depict configurations of input/output systems according toan embodiment;

FIG. 23 depicts a flow diagram according to an embodiment;

FIG. 24 depicts a flow diagram according to an embodiment;

FIG. 25 depicts a flow diagram according to an embodiment;

FIG. 26 depicts a flow diagram according to an embodiment;

FIG. 27 depicts a communication system according to an embodiment;

FIG. 28 depicts a flow diagram according to an embodiment;

FIG. 29 depicts a flow diagram according to an embodiment; and

FIG. 30 depicts a flow diagram according to an embodiment.

DETAILED DESCRIPTION

Overview

The present disclosure describes a vehicle implementing one or moreprocessing modules. These modules are configured to connect andinterface with the various buses in the vehicle, where the various busesare connected with the various components of the vehicle to facilitateinformation transfer among the vehicle components. Each processingmodule is further modularized with the ability to add and replace otherfunctional modules now or in the future. These functional modules canthemselves act as distinct vehicle components. Each processing modulemay hand-off processing to other modules depending on its health,processing load, or by third-party control. Thus, the plurality ofprocessing modules help to implement a middleware point of control tothe vehicle with redundancy in processing and safety and securityawareness in their applications.

Exemplary processing modules include one or more of:

(a) an active-active or active-standby duplicated processing moduleconfigurations in fully or partially wirelessly networked vehicles;

(b) an arbitration module to handle hand-off conflicts in duplicatedprocessing module configurations;

(c) a health check module which checks critical and non-critical tasks,functions, and operations of each processing module to determine whichto designate as the active or primary processing module;

(d) a displayed object movement module to move displayed objects from asource input/output system to a target or destination input/outputsystem;

(e) a media filter which filters third party sourced signals,particularly multimedia signals, in a manner consistent with a vehicleuniversal or occupant-specific whitelist, blacklist, or other userpreference, sensed occupant context, and/or a governing federal, state,provincial, and/or local law or regulation;

(f) in a vehicle equipped with an internal wireless network andoptionally bus-type network, a network selector which selects a networkfor signal transmission based on network/node status, signal/noiseratio, type of signal, available and/or unavailable bandwidth, networkperformance parameter(s) (e.g., availability, packet drop or loss,jitter, latency, buffer capacity, throughput, and the like) quality ofservice, and/or other parameters and configures the signal fortransmission over the selected network;

(g) a diagnostic module handles warning/error signals in a predeterminedmanner;

(h) a remote control module which receives a request from a remotesource or third party to command a vehicle function (which function maybe identified by a suitable function-specific code), authenticates therequestor, and if successfully authenticated and if privileged torequest the performance of the vehicle function, executes the requestnotwithstanding a contrary command from the vehicle operator;

(i) a media controller, which receives a media stream from a remotenode, identifies which input/output systems are disabled due to operatorcommand and/or as a result of governing law, and provides the mediastream to an input/output system associated with the associatedoccupant;

(j) an installation supervisor which, for a newly installed softwareand/or hardware and/or other device (such as an on-board sensor,processing module or component thereof, software application, circuitboard, expansion module or component thereof (which expansion module maybe hardware, software, or a combination thereof), critical ornon-critical device (such as those discussed above with respect to thecritical or non-critical system controller(s)), cellular upgrade module(e.g., 2G, 3G, 4G, 5G, LTE, or other cellular standard upgrade orSubscriber Identity Module (“SIM”) card, board, or other upgrade module,and the like), determines whether the newly installed componentsatisfies defined functional and/or source or reuse requirements and/orrestrictions for the component, license restrictions, and othercriteria, and, if satisfied, creates data structures in the component(if it has a resident memory) and the vehicle memory to bind thecomponent to the current vehicle;

(k) a computational module selector to perform processing load balancingover multiple processing modules;

(l) network security which isolates a component encountering a securitybreach and/or isolates the primary processing module from othercomponents in the local network if the former is not possible;

(m) a “cone of silence” capability by the media controller for externalcomputational devices;

(n) an automated caching, potentially by individual input/outputsystems, by the media controller of media based on various factors;

(o) a presence reporting module considering local laws in determiningwhether an individual is present (e.g., for unified communications) and,if so, by what communication channel(s); and

(p) a social networking module to enable processing modules of differentvehicles to wirelessly connect for to exchange vehicle information.

The Vehicle

FIGS. 1, 3, and 15 collectively illustrate a vehicle 100 incorporatingvarious features.

Referring to FIG. 1, the vehicle 100 includes, among many componentscommon to vehicles, wheels 104, a power source 108 (such as an engine,motor, or energy storage system (e.g., battery or capacitive energystorage system)), a manual or automatic transmission 112, a manual orautomatic transmission gear controller 116, a power controller 120 (suchas a throttle), a braking system 136, a steering wheel 140, a displaypanel 144 (e.g., a dashboard displaying information regarding componentsin vehicle 100), and an occupant seating system 148.

Other components in vehicle 100 include communication components such asa wireless signal receiver 152 to receive wireless signals from signalsources such as roadside beacons and other electronic roadside devices,and a satellite positioning system receiver 156 (e.g., a GlobalPositioning System (“GPS”) (US), GLONASS (Russia), Galileo positioningsystem (EU), Compass navigation system (China), and RegionalNavigational Satellite System (India) receiver).

The vehicle 100 also includes a number of control units and sensors forthe various components of vehicle 100. Exemplary control units andsensors therefor include wheel state sensor 160 to sense one or more ofvehicle speed, acceleration, deceleration, wheel rotation, wheel speed(e.g., wheel revolutions-per-minute), wheel slip, and the like. Powersource controller and energy output sensor 164 controls the power sourceand to senses a power output of the power source 108. Example aspects ofpower source controller and energy output sensor 165 include balancingthe mixture of fuel (e.g. gasoline, natural gas, or other sources offuel) and other elements (e.g. air for combustion) and measuring one ormore of current engine speed (e.g., revolutions-per-minute), energyinput and/or output (e.g., voltage, current, fuel consumption, andtorque), and the like. Switch state control unit 168 activates ordeactivates the power source (e.g. the ignition). Transmission controlunit (“TCU”) 170 sets the current state the transmission (e.g., gearselection or setting) based on the state of gear controller 116. Powercontrol unit 174 sets the throttle for power source 108 given the stateof power controller 120. Brake control unit 176 operates the currentstate (braking or non-braking) of braking system 136 based on the stateof the brake controller (which could be linked to power controller 120).

Vehicle 100 also includes other control units and sensors for safetypurposes. An airbag deployment system includes an airbag deploymentcontrol unit 133 and a collision sensor 132. When a collision isdetected by collision sensor 132, data is sent to airbag release controlunit 133 which determines whether to deploy the airbag based on the datareceived (e.g., the speed of the collision and the area of impact todetermine whether an airbag deployment can promote safety). Other safetycomponents include seat belt control unit and sensors for setting theseat belt (e.g. engaging or disengaging the seat belt during hardbreaking), head light control unit and sensors for headlight 128 andother lights (e.g. emergency light, brake light, parking light, foglight, interior or passenger compartment light, and/or tail light state(on or off)), door settings (locking and unlocking), window settings(opening or closing), one or cameras or other imaging sensors (whichcommonly convert an optical image into an electronic signal but mayinclude other devices for detection objects such as an electromagneticradiation emitter/receiver that emits electromagnetic radiation andreceives electromagnetic waves reflected by the object) to senseobjects, such as other vehicles and pedestrians and optionally determinethe distance, trajectory and speed of such objects, in the vicinity orpath of the vehicle, and other components and sensors as known in theart.

Vehicle 100 further includes components for the convenience andenjoyment of the occupants or operators. Seating system controller andsensor 178 sets the position and other settings of a seat and measurevarious attributes of an occupant of the seat (e.g., the current weightof seated occupant) in a selected seat of the seating system 148.Entertainment system 190, preferably located in the head unit of thepassenger compartment, provides entertainment options such as music orvideo for occupants of vehicle 100.

Examples of other vehicle components include one or more cameras orother imaging sensors (which commonly convert an optical image into anelectronic signal but may include other devices for detection objectssuch as an electromagnetic radiation emitter/receiver that emitselectromagnetic radiation and receives electromagnetic waves reflectedby the object) to sense objects, such as other vehicles and pedestriansand optionally determine the distance, trajectory and speed of suchobjects, in the vicinity or path of the vehicle, odometer readingsensor, trip mileage reading sensor, wind speed sensor, radartransmitter/receiver output, brake wear sensor, steering/torque sensor,oxygen sensor, ambient lighting sensor, vision system sensor, rangingsensor, parking sensor, heating, venting, and air conditioning (HVAC)sensor, water sensor, air-fuel ratio meter, blind spot monitor, halleffect sensor, microphone, radio frequency (RF) sensor, infrared (IR)sensor, vehicle control system sensors, wireless network sensor (e.g.,Wi-Fi and/or Bluetooth sensor), cellular data sensor, and other sensorsknown to those of skill in the vehicle art.

Vehicle 100 includes one or more vehicle buses 180 for connecting thevarious components and systems of vehicle 100 as described above. Inmodern vehicles, subsystems such as an anti-lock braking system (ABS),which may be used by brake control unit 176 and braking system 136,engine control unit (ECU), which may be used by power source control164, transmission control unit (TCU), which may be used by transmissioncontrol unit 170 and gear controller 116, and supplemental restraintsystem (SRS), such as airbag deployment control unit 133 and collisionsensor 132 and seating system controller and sensor 178, are frequentlyinterconnected using a standardized bus. Standardized buses for use invehicles include Controller Area Network (CAN), and Local InterconnectNetwork (LIN) and others, as are known in the art. In particular, thesecomponents and subsystems may use the high-speed CAN bus for real-timeinformation. Other components with lower priorities may use thelow-speed CAN bus to transmit information. Vehicle bus 180 (which isoptional) is illustrated as one bus in FIG. 1. However, vehicle 100 mayinclude one or more of these standardized buses, such as a combinationof the high-speed and low-speed CAN, LIN, and/or other buses. Also,vehicle bus 180 may further include and support extensions tostandardized buses, such as the FlexCAN extension to the CAN bus.Further, vehicle bus 180 may include standardized communication networksthat can be implemented vehicle 100. Well known networks includeEthernet, Wi-Fi, USB, I²C, RS232, RS485 and FireWire.

Vehicle 100 also includes processing module 124. Preferably, processingmodule 124 is placed in the trunk, hood (not shown), behind the headunit (not shown), and/or other accessible but unseen locations.Processing module 124 is coupled to vehicle bus 180 and providesprocessing for data related to vehicle bus 180 and other vehiclecomponents.

Processing modules, for example, can perform, monitor, and/or controlcritical and non-critical tasks, functions, and operations, such asinteraction with and/or monitoring and/or control of critical andnon-critical on board sensors and vehicle operations (e.g., engine,transmission, throttle, brake power assist/brake lock-up, electronicsuspension, traction and stability control, parallel parking assistance,occupant protection systems, power steering assistance,self-diagnostics, event data recorders, steer-by-wire and/orbrake-by-wire operations, vehicle-to-vehicle interactions,vehicle-to-infrastructure interactions, partial and/or full automation,telematics, navigation/SPS, multimedia systems, audio systems, rear seatentertainment systems, game consoles, tuners (SDR), heads-up display,night vision, lane departure warning, adaptive cruise control, adaptiveheadlights, collision warning, blind spot sensors, park/reverseassistance, tire pressure monitoring, traffic signal recognition,vehicle tracking (e.g., LoJack™), dashboard/instrument cluster, lights,seats, climate control, voice recognition, remote keyless entry,security alarm systems, and wiper/window control). Processing modulescan be enclosed in an advanced EMI-shielded enclosure containingmultiple expansion modules. Processing modules can have a “black box” orflight data recorder technology, containing an event (or drivinghistory) recorder (containing operational information collected fromvehicle on board sensors and provided by nearby or roadside signaltransmitters), a crash survivable memory unit, an integrated controllerand circuitry board, and network interfaces. Processing module 124 isfurther disclosed with reference to FIG. 2.

As set forth below and as shown in FIG. 3, multiple processing modules124 a-c may be located at various locations in a common vehicle. Thedisparate, spaced apart locations of the processing modules 124 a-cprovide redundancy in the event of a collision or other catastrophicevent. For example, a collision with the rear of the vehicle 100 maydamage the processing module 124 c but not the processing modules 124a,b.

As will be appreciated, the multiple processing modules 124 a-c may beconfigured to operate in an active/active and/or active/standby mode.These operating modes describe the manner in which first and second(redundant) devices operate under normal conditions. In active/standbyimplementations, only the primary device in a pair processes informationand issues commands. The standby device sits idle, ready to assume theactive role should the primary device fail. The standby device mayreceive, from the primary device, processing, command, and primarydevice state information to facilitate stateful failover, but it doesnot itself commonly perform meaningful work until the primary devicefails. In active/active implementations, both devices are online andcollaboratively process information and issue commands under normalconditions. When one device fails, all processing is handled by theremaining device.

A user can be an occupant of a vehicle 100 that implements the system ofFIG. 1. A user can further be an assembler, technician, or mechanicworking on the vehicle to configure the system of FIG. 1 for use by anend-user of the vehicle.

FIG. 2 illustrates an exemplary block diagram for a (primary and/orsecondary) processing module 124 a-c.

Processing module 124 may include processor 210, memory 220, storage230, and interfaces for one or more buses 240-270. Among the interfaces240-270 include high-speed CAN bus 240, low-speed CAN bus 250, LIN bus260, network interface 270, and/or wireless interface 280. One skilledin the art will recognize that processing module 124 may take otherconfigurations and with other buses as known in the art, and interfaces240-290 may be implemented with more or fewer buses than those shown.

The operations of processing module 124 will now be described withrespect to the high-speed CAN bus interface 240 and low-speed CAN businterface 250 as an exemplary configuration in one embodiment of theinvention. In one implementation, processing module 124 receives datatransmitted over vehicle bus 180 through high-speed CAN bus interface240 and/or low-speed CAN bus interface 250. Data transmitted over thehigh-speed CAN bus includes priority data from subsystems such asanti-lock braking system (ABS), which may be used by brake control unit176 and braking system 136, engine control unit (ECU), which may be usedby power source control 164, transmission control unit (TCU), which maybe used by transmission control unit 170 and gear controller 116, andsupplemental restraint system (SRS), such as airbag deployment controlunit 133 and collision sensor 132 and seating system controller andsensor 178, as described above. Data transmitted over the low-speed CANbus includes other noncritical data, such as engine temperature and oilpressure sensor readings.

Wireless interface 280, by contrast, can be a transceiver for one ormore long, intermediate, or short range wireless networks, such as aradio (e.g., cellular such as CDMA, GSM, or IS-95 network), 802.X, aWiFi™ network, a Bluetooth™ network, and the like, sending and receivinga wide variety of information, including lower priority information,such as data for the convenience and enjoyment of the occupants inentertainment system 190 or seating system 148. The wireless interface280 can access information over one or more wireless networks using anappropriate protocol, such as the Wireless Application Protocol,Wireless Internet Protocol, Wireless Session Protocol, BluetoothWireless Protocol, Wireless Datagram Protocol, Wireless HART Protocol,Wired Equivalent Privacy (WEP), MiWi and MiWi P2P, RuBee (IEEE standard1902.1), Wireless USB, Wireless Transport Layer Security (WTLS), and thelike. In one vehicle configuration, the wireless interface 280 connects,via a short distance protocol such as Bluetooth™ or WiFi™, to anexternal computational device, such as a cell phone, personal digitalassistant, laptop, personal computer, or tablet computer, for access toremote nodes over the Internet.

Local network interface 270 is a transceiver for signals exchanged withother on board components of the vehicle (including the componentsdiscussed above with respect to FIG. 1). The signals may be sent over awired or wireless (or combination thereof) network. In oneconfiguration, the local network interface is a wireless access point.Any suitable local area network protocol may be used, with the Ethernetprotocol and the short-range protocols mentioned above being examples.

The processor 210 may comprise a general purpose programmable(micro)processor or controller for executing application programming orinstructions. In accordance with at least some embodiments, theprocessor 210 may include multiple processor cores, and/or implementmultiple virtual processors. In accordance with still other embodiments,the processor 210 may include multiple physical processors. As aparticular example, the processor 304 may comprise a speciallyconfigured application specific integrated circuit (ASIC) or otherintegrated circuit, a digital signal processor, a controller, ahardwired electronic or logic circuit, a programmable logic device orgate array, a special purpose computer, or the like. The processor 210generally functions to run programming code or instructions implementingvarious functions of the device 200.

Memory 220 for use in connection with the execution of applicationprogramming or instructions by the processor 210, and for the temporaryor long term storage of program instructions and/or data. As examples,the memory 220 may comprise RAM, DRAM, SDRAM, or other solid statememory. Alternatively or in addition, data storage 230 may be provided.Like the memory 220, the data storage 230 may comprise a solid statememory device or devices. Alternatively or in addition, the data storage230 may comprise a hard disk drive or other random access memory.

FIG. 3 depicts a vehicle 300 with multiple processing modules accordingto an embodiment. Vehicle 300 includes bus 180, vehicle component 310,and processing modules 124A-C.

Vehicle component 310 is an exemplary vehicle component for illustrationpurposes that is connected to bus 380. Vehicle component 310 mayrepresent any of the vehicle components discussed in connection withvehicle 100 (FIG. 1).

Each of the processing modules 124A-C is each coupled to bus 180.Processing module 124A is located in the engine compartment of vehicle300; processing module 124B is located in the passenger compartment ofvehicle 300; and processing module 124C is located in the truck ofvehicle 300.

In one configuration, some of the processing modules 124A-C may havelimited processing functions as compared to the others. For example,processing module 124A may act as the default processing module forvehicle 300 normally because of its location being close to mostcritical vehicle components in the engine compartment (i.e., ECU, TCU).If the other processing modules 124B-C are only needed for redundancy,they may be implemented to only have limited capabilities (i.e., theseprocessing modules would not be require to have processing all criticaland non-critical functions). This implementation has the advantage ofreduced costs and/or space as compared to fitting processing module willfull capabilities. The processing modules 124A-C may also have cascadinglevels of capabilities. For example, processing module 124B is fitted inthe passenger compartment and is deemed to most likely survive acollision; it may be required to have capabilities critical to vehicleoperation but no other capabilities to save space in the passengercompartment. Processing module 124C may have additional capabilitiessuch as a cellular module so that emergency calls may be automaticallyplaced if the default processing module 124A fails.

In another configuration, each of the processing modules 124A-C may havedifferent capabilities. For example, processing module 124A may havecapabilities only for critical vehicle functions; processing module 124Cmay have capabilities only for non-critical vehicle functions; andprocessing module 124B may be reserved for back-up processing of bothcritical and non-critical vehicle functions. In one implementation,processing may be off-loaded to another processing module if one modulebecomes overloaded. This configuration has the advantage furtherreduction in costs and space because processing power is not wasted dueto redundancy. In the case where one processing module malfunctions, theother processing modules may pick up processing duties via a processoroff-load procedure. If there is not enough processing power all wantedfunctionalities, the processing modules may work together to prioritizecritical vehicle functions ahead of non-critical functions.

FIG. 20 depicts computational modules and data structures in memory 220according to an embodiment.

An arbitration module 2000 selects a processing module to currentlypossess or own token 2004 (which is used to designate the processingmodule 124, in an active-standby configuration, being the active orstandby processing module or, in an active-active configuration, havingthe responsibility for certain tasks, functions, or operations, such ascritical tasks, operations, or functions, while the other processingmodule has responsibility for other different tasks, operations, orfunctions, such as non-critical tasks, operations, or functions.

A heath check module 2008 performs checks or tests, in response tointernally generated interrupts or requests from the other processingmodule, its ability to perform both critical and non-critical tasks,functions, and operations. Individual scores and composite or cumulativescores for the tasks, functions, and operations can be determined andcompared to thresholds to determine an absolute state of health and/orto the individual and/or cumulative scores of the other processingmodule to determine a relative state of health.

Critical system controller(s) control, monitor, and/or operate criticalsystems. Critical systems can include one or more of (depending on theparticular vehicle) monitoring, controlling, and/or operating the ECU,TCU, door settings, window settings, and/or blind spot monitor,monitoring, controlling, and/or operating the safety equipment (e.g.,airbag deployment control unit 133, collision sensor 132, nearby objectsensing system, seat belt control unit, sensors for setting the seatbelt, etc.), monitoring and/or controlling certain critical sensors suchas the power source controller and energy output sensor 164, enginetemperature, oil pressure sensing, hydraulic pressure sensors, sensorsfor headlight 128 and other lights (e.g. emergency light, brake light,parking light, fog light, interior or passenger compartment light,and/or tail light state (on or off)), vehicle control system sensors,wireless network sensor (e.g., Wi-Fi and/or Bluetooth sensor), cellulardata sensor, and/or steering/torque sensor, controlling the operation ofthe engine (e.g., ignition), head light control unit, power steering,display panel, switch state control unit 168, power control unit 174,and/or brake control unit 176, and/or issuing alerts to a user and/orremote monitoring entity of potential problems with a vehicle operation.

Non-critical system controller(s) 2016 control, monitor, and/or operatenon-critical systems. Non-critical systems can include one or more of(depending on the particular vehicle) monitoring, controlling, and/oroperating a non-critical system. emissions control, seating systemcontroller and sensor 178, entertainment system 190, monitoring certainnon-critical sensors such as ambient (outdoor) weather readings (e.g.,temperature, precipitation, wind speed, and the like), odometer readingsensor, trip mileage reading sensor, road condition sensors (e.g., wet,icy, etc.), radar transmitter/receiver output, brake wear sensor, oxygensensor, ambient lighting sensor, vision system sensor, ranging sensor,parking sensor, heating, venting, and air conditioning (HVAC) system andsensor, water sensor, air-fuel ratio meter, hall effect sensor,microphone, radio frequency (RF) sensor, and/or infrared (IR) sensor.

On board sensor monitor(s) 2020 include interfaces to receive signalsfrom and transmit signals to a corresponding on-board sensor, includingthe on-board sensors discussed above, and the logic to monitor sensoroperation and readings.

The displayed object movement module 2024 monitors display inputreceived from occupants for commands to move a displayed object from afirst display to a different second display in the vehicle for viewingby, for instance, a different occupant. The display input may include,for example, a sensed gesture, an icon selection, or other inputindicative to a desire or request to move a displayed object from thefirst display to the second display. The moved object may or may not beretained for view on the first display after movement.

The diagnostic module 2028 handles warning/error signals in apredetermined manner. The signals, for instance, can be presented to athird party and/or occupant and/or cause the performance of on boarddiagnostics.

The media filter 2032 filters third party sourced signals, particularlymultimedia signals, in a manner consistent with a vehicle universal oroccupant-specific whitelist, blacklist, or other user preference, sensedoccupant context, and/or a governing federal, state, provincial, orlocal law or regulation.

The network selector 2036 selects a network for signal transmissionbased on network/node status, signal/noise ratio, type of signal,available and/or unavailable bandwidth, network performance parameter(s)(e.g., availability, packet drop or loss, jitter, latency, buffercapacity, throughput, and the like) quality of service, and/or otherparameters and configures the signal for transmission over the selectednetwork.

The remote control module 2040 receives a request from a remote sourceor third party to command a vehicle function (which function may beidentified by a suitable function-specific code), authenticates therequestor, and if successfully authenticated and if privileged torequest the performance of the vehicle function, executes the requestnotwithstanding a contrary command from the vehicle operator. Therequestor can, for example, be a vehicle owner, a law enforcementauthority, a vehicle manufacturer, a lender having a loan collateralizedby the vehicle, and the like.

The installation supervisor 2044, for a newly installed software and/orhardware and/or other device (such as an on-board sensor, processingmodule 124 or component thereof, software application, circuit board,expansion module 290 or component thereof (which expansion module 290may be hardware, software, or a combination thereof), critical ornon-critical device (such as those discussed above with respect to thecritical or non-critical system controller(s) 2012 and 2016), cellularupgrade module (e.g., 2G, 3G, 4G, 5G, LTE, or other cellular standardupgrade or Subscriber Identity Module (“SIM”) card, board, or otherupgrade module, and the like), determines whether the newly installedcomponent satisfies defined functional and/or source or reuserequirements and/or restrictions for the component, licenserestrictions, and other criteria, and, if satisfied, creates datastructures in the component (if it has a resident memory) and thevehicle memory 220 to bind the component to the current vehicle.

The media controller 1524 receives a media stream from a remote node,identifies which input/output systems are disabled due to operatorcommand and/or as a result of governing law, and provides the mediastream to an input/output system associated with the associatedoccupant.

The computational module selector 2052 identifies the computationalmodules, particularly software applications, currently available withinthe local area network of the vehicle, the identification including notonly the type (e.g., game, multimedia, music, utility, and the like),source or vendor (e.g., Apple, Microsoft, and the like), capabilitiesand requirements (e.g., operating system, processing, memory, display,and other requirements) but also the version of the computationalmodule, and records this information in memory 220. The selector 2052can select not only, for duplicated computational modules, a mostcurrent version of the duplicated module to execute and a computationalplatform (e.g., first, second, . . . processing module or externalcomputational device 1532) for the execution.

The presence reporting module 2056 considers local laws, individual(contactee) context, and other factors in determining whether anindividual (contactee) is present (e.g., for unified communications)and, if so, by what communication channel(s).

The social networking module 2070 creates, manages, and/or maintains asocial networking session with one or more other vehicles. The socialnetworking module 2070 can identify operational vehicles having anoccupant in a social networking relationship with an occupant of theselected vehicle, notify one or both occupants of the capability ofinstantiating a social networking session, and effectuate and maintainsuch a session.

In one application, processing module 124 is configured to processinformation sent over the CAN buses. As priority data is received byprocessing module 124 from high-speed CAN bus interface 240 and/orlow-speed CAN bus 250, processing module 124 may determine the nature ofthe received data and independently do further processing on thereceived data. In a preferred embodiment, processor 210 executesinstructions stored in memory 220 to perform these functions. Further,memory 220 serves as stores and retrieves for data by processor 210.

In one configuration, processing module 124 only receives data overhigh-speed CAN bus 240 and may send the data back over low-speed CAN bus250. As the CAN bus provides arbitration-free transmission, processingmodule 124 may passively listen to information traffic, which includespriority data from the various components as discussed, sent overhigh-speed CAN bus 240. Processing module 124 then determines if a pieceof received information may need further processing and should be sentto devices via low-speed CAN bus 250.

For example, collision sensor 132 may have detected a frontal collision.In one data path, collision sensor 132 may send a signal with details tothe collision (i.e. areas of impact and/or force and/or velocity ofimpact) over high-speed CAN bus 240 with specific target to airbagrelease control unit 133 to potentially deploy the airbags once airbagrelease control unit 133 determines that it is suitable to do so uponthe receipt of the sent data. Since the CAN bus is arbitration-free,processing module 124 also receives the collision information fromcollision sensor 132. Processing module 124 then processes theinformation received to determine to relay the information to aninformation display (i.e., display console of entertainment system 190)via the low speed CAN bus 250.

It is noted that the data rate is limited in the current implementationsof the CAN bus. However, future implementations may allow for higherspeeds such that the CAN bus may support data rate suitable formultimedia application. In these implementations, processing module 200may be configured to leverage the CAN bus for multimedia use. Forexample, real-time multimedia information (i.e. analog/digital radio ortelevision signal) may be received by an antenna and transmitted througha CAN bus via processing unit 200 to entertainment system 190. At somepoint in time, one component of vehicle 100 may have suffered amalfunction that requires information the driver. In the defaultimplementation of the CAN bus, the higher priority signal from themalfunctioning component will have priority over the multimediainformation. With the leveraged CAN bus by processing module 200, thehigh priority signal from the malfunctioning component can be furtherprocessed by processor 210. If processor 210 determines that themalfunction is minor, processor 210 may relay the malfunctioninformation to the low speed CAN bus 250 but being mixed in with themultimedia information such that there is little disruption to playingbacking the multimedia information. Further, processor 210 may alsoconsider if the malfunction requires further processing such asnotification to a repair facility or emergency services.

In another configuration, processing module 200 may leverage other busessuch as the network interface 270 and/or wireless interface 280 thathave more bandwidth for the data. For example, while the presentimplementation of the CAN bus would not support multimedia informationwith any substantial bit rate, the network interface 270 may beleveraged such that while CAN bus information is received via the highspeed CAN bus 240, multimedia information is relayed separately via thenetwork interface 270. This enables the processing module 200 toimplement the previous example discussed involving relaying informationregarding malfunctioning component without waiting for a futureimplementation of the CAN bus.

In another application, a processing module 124 may add furtherexpansion modules 290A-N for further capabilities. For example,expansion modules 290A-N may contain a cellular telephony module. Thecellular telephony module can comprise a GSM, CDMA, FDMA, or otherdigital cellular telephony transceiver and/or analog cellular telephonytransceiver capable of supporting voice, multimedia and/or datatransfers over a cellular network. Additionally, expansion modules290A-N can include other cellular telephony modules from differentproviders or modes for other wireless communications protocols. Asexamples, the modules for other wireless communications protocols caninclude a Wi-Fi, BLUETOOTH™, WiMax, infrared, or other wirelesscommunications link. The cellular telephony module and the otherwireless communications module can each be associated with a shared or adedicated antenna. Further, expansion modules 290A-N may also includeother wired bus modules that may connect to additional essential andnonessential vehicle components that may be installed or upgraded in thefuture. Processing modules 290A-N may contain functions critical to theoperation of the vehicle such as engine control (ECU), transmissioncontrol (TCU), airbag control, various sensors, or other operational orsafety related components. Further, processing modules 290 may take onmore processing duties from a vehicle component 310 connected to bus380. Thus, processing modules 124A-C benefits from redundancy in thecase that one of modules malfunctions. Further, in a vehicle collision,it is expected that at least some of the processing modules may totallymalfunction. In these cases, the remaining processing modules may takeover limited or full processing duties of the malfunctioning vehiclecomponents 310 or processing modules 390A-C.

In one configuration, processor 210, memory 220, storage 230, and thebus interfaces 240-280 may also be expansion modules similar to 290A-N.For example, processor 210 may be initially implemented as an OMAP 4processor. In the future, OMAP 5 processors may be developed andprocessor 210 may be upgraded as a modular component.

In another application, processing module 124 is able to supportadditional vehicle hardware and/or software components that are added tothe vehicle and is connected to processing module 124 via a bus. Forexample, vehicle 100 may have installed an additional entertainmentsystem. In one configuration, processing module 124 can treat theadditional component that is connected to processing module 200 via abus as an expansion module 290A-N.

In another configuration, the additional hardware and/or softwarecomponent may require further processing for it to work with processingmodule 124. For example, the bus protocol may need to be modified tosupport communicating with the additional component because theadditional component has capabilities beyond the existing protocol(i.e., an extension to an existing bus architecture). In oneimplementation, processing module 124 must first check to ensure thatthe additional component complies with OEM defined standards such thatrogue components not recognized for a particular vehicle would not besupported.

FIG. 15 depicts the vehicle 100 in communication, via first, second, . .. networks 1504 a, b, . . . , with a remote node 1500, such as acomputational device, e.g., a server, mobile phone, tablet computer,laptop computer, personal computer, and the like, of the vehicle owner,law enforcement authority, insurance company, vehicle or partsmanufacturer/vendor (e.g., to provide vehicle diagnostics, maintenancealerts, vehicle or part recall notifications, and/or predictiveanalytics), a service provider (e.g., a convenience service providersuch as a service to connect the vehicle operator with a dealer, aservice to locate the vehicle, a service to provide vehicle informationand/or feature assistance, an automotive navigation system service and aservice to start a vehicle (OnStar™ being an example), a location-basedservice provider (e.g., traffic and/or weather reporting and/or adviseron gas, accommodations, navigation, parking assistance, and/or food),Internet content provider, software vendor, concierge service provider,a processing module of another vehicle, a roadside monitor, sign,beacon, and the like, to name a few.

The first, second, . . . networks1504 a,b, . . . can be any wirelessnetwork, such as a radio or cellular network (e.g., CDMA, CDMA2000,AMPS, D-AMPS, TACS, ETACS, CSK, CDMAOne, GSM, EDGE, GPRS, HSCSD, UMTS,WCDMA, HSPA, WIMAX, WIMAX ADVANCED, LTE ADVANCED, or FDMA in accordancewith the 1G, 2G, 2G transitional, 3G, 3G transitional, 4G or 5G cellularnetwork standards), a Wi Fi network, a Bluetooth network, and the like.

The vehicle 100 includes a transceiver 1508 to send and receive signalsover a selected one of the first, second, . . . networks 1504 a, b, . .. , a gateway/firewall 1512 to provide secure connectivity between thevarious components of the vehicle 100 and the first, second, . . .networks 1504 a, b, . . . , primary and secondary processing modules 124a and b, memory/storage 220 or 230, on board sensors 1516 (discussedabove with reference to FIG. 1), input/output system(s) 1520 andassociated media controller (discussed below) to manage and control theoutput presented by the input/output system(s) to the user, networkcontroller 1528 to supervise local networks and nodes thereof andidentify and, if possible, isolate malfunctioning networks and/or nodesto avoid detrimental impact on other networks and/or nodes of thevehicle 100, and external computational device(s) 1532 of occupants,such as wireless capable mobile phones, personal digital assistants,tablet computers, laptop computers, and the like. As will beappreciated, the logic for the gateway/firewall 1512, media controller1524 and network controller 1528 can be contained within memory/storage220, 330. The various components are connected by a bus, wirelessnetwork, or combination thereof (denoted by reference 1536).

The gateway/firewall can be any suitable module that can maintain secureconnectivity. The need for the gateway/firewall is necessitated by theassignment of a wireless data network address, such as defined by IPv6(Internet Protocol version 6), with the corresponding processing module124. As will be appreciated, IPv6 addresses, as commonly displayed tousers, consist of eight groups of four hexadecimal digits separated bycolons, for example 2001:0db8:85a3:0042:0000:8a2e:0370:7334.

Each processing module 124 can have an independent network address oruse a common network address. The gateway can be any module equipped forinterfacing with another network that uses one or more differentcommunication protocols. The firewall can use any technique to maintainsecurity, including network address translation, network layer or packetfiltration, application-layer firewall, and the like.

FIG. 16 depicts an exemplary input/output architecture for the vehicle100. The architecture includes first, second, . . . nth input/outputsystems 1600 a-n, the media controller 1524, display controller(s) 1604to receive user input via the input/output system(s) and configure theoutput presented by the input/output system(s) to the user, audiocontroller(s) 1608 to control audio output to the user, and rule sets1612 (stored in memory/storage 220, 230) to regulate correspondingfeatures/functions of the vehicle 100, particularly the informationand/or other output provided to each occupant by a respectiveinput/output system. Generally, each of the multiple occupants has aseparate and corresponding input/output system 1600. For example, eachseat 148 can have a corresponding input/output system 1600.

As can be appreciated, the functionality disclosed herein may beaffected by the geographical location and/or movement of a vehicle. Avehicle may cross a jurisdictional line where different laws exist thatconcern behavior in or about vehicles. These laws may be stored, as oneor more rule set(s) 1612, in a database on-board and/or remotelyaccessible by the vehicle. A vehicle may use its location-based featuresto determine the appropriate applicable laws and enable or disablecertain features to a user. For example, in the event that an individualcrosses a state line where the local laws prohibit texting whiledriving, the vehicle may disable texting for the vehicle operator. Thisblocking would not prevent others in a vehicle from texting, and ifallowed may provide for the operator to continue to send voice-activatedtexts, etc. Movement and location of the vehicle may be determined usinglocation-based features as described herein. Moreover, to prevent falseblocking of features, a specific user device position may be determinedby sensors on the device, sensors in the vehicle, and/or combinationsthereof. Although described with reference to blocking the textingability of a specific user, it can be appreciated that the ability tosurf the Internet, view photos, access streaming content, and otherpredetermined distractions may also be disabled.

For an additional external computational device 1532 that connects toprocessing module 124 via wireless interface 280, a secured connectionprotocol is needed. Unlike a wired bus connection, which is generallyelectronically confined to vehicle 100, a wireless connection viawireless interface 280 may be broadcast to other communication systemswithin the vicinity of vehicle 100. Thus, other wireless communicationhardware, systems, and networks might be able to communicate with thecommunication system of the vehicle 100. This ability is potentially asecurity hazard.

To resolve this issue, wireless security rules should be used to ensurethat only trusted devices, such as the external computational device1532, communicate wirelessly, via the wireless interface 280, with theon board vehicle components through the wireless interface 280. Suchsecurity is provided by the gateway/firewall 1512 applying knownsecurity algorithms. In one implementation, wireless security may beimplemented by the gateway/firewall 1512 using the current securitysetup in the 802.11 standard such as Wired Equivalent Privacy (WEP) orWi-Fi Protected Access (WPA) or other security systems as known in theart. OEMs may also choose to implement security by using a proprietysecurity system and/or wireless protocol to work with the in-vehiclewireless communication network.

Upgrading the vehicle 100 using different processing modules and/orother on board components, such as on board sensors 1516, can be donesecurely and seamlessly. A limit may be imposed on the place and mannerin which an additional component communicating via the in-vehiclewireless network may be added to the vehicle 100. For example,installation of the additional component may only be available at anautomobile shop or may even more limited to only in OEM approved shopsor dealership to ensure that the newly installed component is fullytested to communicate only with vehicle 100 and not with other adjacentvehicles.

To facilitate this process, a handshake procedure may be used during theinitial installation of the component. In one implementation, an OEMapproved shop may have codes that will allow the new component to accepta link with vehicle 100. During this handshake procedure, vehicle 100and its relevant components, such as processing module 200, maynegotiate a protocol and/or security settings to communicate with thenew component. For example, a symmetric or asymmetric code or key pairmay be developed for encrypting communications. Alternatively, codes forWEP, WPA, or other security systems as known in the art may be developedfor secured communication. After this initial handshake procedure, thenew component and vehicle 100 will not have to do any further securitysetup in the future to prevent leaking the secured codes. In a furtherimplementation, the new component is considered married or bound tovehicle 100 and may not communicate with any other vehicles unlessunmarried or unbound when the component is removed at an approved shop.The dedication of the component to the vehicle may be done by using aunique code, such as a serial number of the component or vehicle, toenable a type of routine licensing compliance check when the car isactivated. This can be done, for example, by comparing a unique codereceived by the installed component from another vehicle component or bythe other vehicle component from the installed component. The licensingcheck is successful when the received code matches a code stored inmemory of the receiving device.

In another configuration, the additional, or installed, component mayalso communicate wirelessly with other vehicle components of vehicle 100without needed processing module 200 to relay any communication. Thismay be done by sharing a vehicle encryption scheme and code for thewireless use. This may be useful for emergency purposes (i.e. the policemay have a need to control certain components in a vehicle).

Operation of Arbitration and Health Check Modules 2000 and 2008

The processing modules 124 can use any of a variety of techniques todetermine relative status and/or processing role of each. For example,under one technique a token is passed to signify the active or passiveprocessing module or the processing module performing a specified set ofprocessing operations. The processing module in possession of the tokenat any one time has the status and/or is responsible for the set ofprocessing operations associated with the token. Rules may be used toarbitrate between the processing modules when each asserts ownershipand/or non-ownership of the token.

By way of illustration, the processing modules 124 can determine whichmodule is active and which is standby by employing the following rules.Upon detection of a selected stimulus (e.g., at vehicle start-up,processing module power-up, and/or periodically during vehicle orprocessing module operation), the health check module 2008 in eachprocessing module 124 runs self-tests or queries the health check module2008 other processing module 124 to perform selected computational tasksand provide the result. The processing modules 124 thus exchangemessages with each other. Based on the results of its self-test (orqueried tests), each processing module 124 decides whether it can becomeactive. If so, the processing module 124 asserts an available signal toan arbitration module 2000, which propagates the signal to the otherprocessing module 124. The arbitration module 2000, applying rules,chooses the active processing module 124 and forwards the token to theselected processing module 124, along with an interrupt. Rules mayinclude a default selection, an ordered, random or pseudorandom periodicchange in which processing module 124 is active and which is standby,which processing module 124 is healthier (or has a higher state ofhealth score, the relative capabilities of the processing modules 124(with the more capable processing module being active), and the like.The arbitration module 2000 propagates a token non-ownership signal tothe other processing module 124, along with an interrupt. Eachprocessing module 124, in response, sets its status in memory to“primary” or “standby”. If the active processing module 124 is removed,powered down, or voluntarily de-asserts ownership or possession of thetoken, the standby processing module immediately receives the availabletoken 2004, along with an interrupt. It then assumes, and records inmemory, the primary state.

In one variation, arbitration is performed by the arbitration module2000 using a health check procedure 400 shown in FIG. 4.

Health check procedure 400 by the health check module 2008 is one way inwhich each processing modules 124A-C may self-check to determine arespective state of health (e.g., if the processing modules remainsfully functional or is only partially functional). Health checkprocedure 400 may be activated by each processing module 124 or one ofthe other processing modules 124 at a certain time interval or may bemanually activated by user (i.e. a user directly activating the moduleor whenever the ignition is started). Health check procedure 400 mayalso be continuous running while the vehicle 300 is running to ensurethe fastest response time in case a collision occurs resulting in animmediate loss of processing functions.

In step 410, the health check module 2008 in each processing module 124performs a health check on its critical tasks, functions or operationsof which losing one would result in a potentially critical loss tovehicle operation. As discussed previously, the critical tasks,functions or operations may include, for example (depending on theparticular vehicle), monitoring, controlling, and/or operating acritical system. Health check 410 may involve procedures such as testingor monitoring that each critical function or operation is operatingwithin predetermined or selected operating parameters and/or causingeach critical component (safety equipment, selected sensors, engine,power steering, and/or brakes) to operate within selected operatingparameters. In some configurations, a critical system, such as the ECU,may include both critical (i.e. engine failure) and non-critical tasksor functions (i.e. minor oil leak). Health check 410 may be configuredto check only the critical tasks or functions.

In pass test check 411, if any malfunction to a critical task, functionor operation is detected, the procedure activates hand-off procedure instep 440, which will be discussed with reference to FIG. 5. In onevariation, a cumulative score is computed for all critical tasks,functions, and operations. The individual scores of the tasks,functions, and operations and cumulative score for the processing moduleis provided to the arbitration module 2000, which compares both sets ofscores for the two processing modules 124 and selects and designates thehealthier of the two processing modules 124 as the primary or activeprocessing module 124.

If the processing module 124 passes test check 411, health check onnon-critical tasks, functions or operations 420 is performed.Non-critical tasks, functions or operations may include, for example(depending on the particular vehicle) monitoring, controlling, and/oroperating a non-critical system. In step 420, health check is done onvarious functions of the non-critical system, with each function havinga score for passing the health check. The score may be adjustedaccording to the level non-criticality of the system. For example, anemissions control unit, while it may be non-critical to vehicleoperation, may nonetheless be fairly important so as to comply withenvironmental regulations; therefore an emissions control unit could beweighted a comparatively high score for passing. In contrast, anentertainment system's failure may not be deemed to be important (exceptfor operator/occupant inconvenience) and may be weighted with arelatively low score for passing.

In step 421, the score is tabulated for all non-critical systems andcompared to see if it is above a certain threshold. If the score isbelow the threshold, a hand-off procedure is activated in step 450. Forexample, if emissions control by the processing module 124 is detectedto be failing, causing or potentially causing harmful gas emissions torise significantly above the legal limit, health check 421 may give avery low score to this non-critical system. Therefore, even if theentertainment system is working perfectly, health check may still give ascore that is below the threshold and hand-off procedure will beactivated.

In one configuration, the score weight for each non-critical system maybe defined dynamically according to the location of the vehicle or otherfactors. For example, vehicle-use laws may affect how a non-criticalsystem should be weighted (i.e. the stringency of emissions law, noisecontrol law, or other laws in one area). Thus, vehicle-use laws may beprovided by an organization, governmental entity, group, individual,and/or combinations thereof. The laws may be stored locally or retrievedfrom a remotely located storage. The vehicle-in-use laws may be statutesand/or regulations that are enforced by a government entity, such as acity, municipality, county, province, state, country, and the like.These laws may define vehicle, traffic, transportation, and/or safetyrules associated with a given geographical region. An exemplaryvehicle-in-use law governs texting, cellular phone use, and videoavailability to the operator when the car is in motion and the like).The laws may be updated from time to time to, among other things,account for changes in the laws. Thus, a first task, operation, orfunction may be critical in a first geographic location but noncriticalin a different second geographic location. Likewise, a first task,operation, or function may be non-critical and have a first score (ifoperating properly) in a first geographic location but be non-criticaland have a lower second score (if operating properly) in a secondgeographic location.

In step 430, if the score for non-critical systems is above thethreshold, the active processing module 124 may be continued to be usedas the active processor. In one variation, a cumulative score iscomputed for all non-critical tasks, functions, and operations. Theindividual scores of the tasks, functions, and operations and cumulativescore for the processing module is provided to the arbitration module,which compares both sets of scores for the two processing modules andselects and designates the healthier of the two processing modules asthe primary or active processing module.

The operation of a an arbitration module 2000 procedure 500 for aprocessing module will now be discussed with reference to FIG. 5.

The arbitration module 2000 can activate a token arbitration procedure500 by steps 440 and 450 (FIG. 4) where either (a) the one or morecritical tasks, functions, and operations has failed health check or (b)where one or more non-critical tasks, functions, and operations has nottabulated enough score to represent that the selected processing moduleis healthy enough for processing. Arbitration may be based on anabsolute and/or relative state-of-health.

In step 510, a health check is performed, by a respective health checkmodule 2008, on each processing module 124 and the pass/fail results andscoring information reported to the other processing modules 124 and/orthe arbitration module 2000.

In step 514, the arbitration module 2000 selects a next processingmodule 124 (until all are considered) and proceeds to decision diamond518.

In decision diamond 518, the arbitration module 2000 determines whetherthe selected processing module 124 passes the health test on set ofcritical tasks, functions, and operations. If so, the arbitration module2000 proceeds to decision diamond 524.

In decision diamond 524, the arbitration module 2000 determines whetherthe selected processing module 124 passes the health test on set ofnon-critical tasks, functions, and operations. If so, the arbitrationmodule 2000 proceeds to step 528.

In step 528, the arbitration module 2000 creates or updates datastructures indicating that the selected processing module 124 is healthyand recording the selected processing module's respective scoringinformation. Optionally, the arbitration module 2000 can determine andrecord the relative state-of-health of the selected processing module124 relative to other processing modules.

When the selected processing module 124 fails to pass one or more setsof critical tasks, functions, and operations (decision diamond 518) ornon-critical tasks, functions, and operations (decision diamond 524),the arbitration module 2000 proceeds to step 532 and creates or updatesdata structures indicating that the selected processing module 124 isunhealthy and recording the selected processing module's respectivescoring information. Optionally, the arbitration module 2000 candetermine and record the relative state-of-health of the selectedprocessing module 124 relative to other processing modules.

After performing steps 528 or 532, as appropriate, and when noprocessing module 124 remains to be analyzed, the arbitration module2000 proceeds to decision diamond 536. In decision diamond 536, thearbitration module 2000 determines whether a healthy processing module124 is available and, when available, designates, in step 540, thehealthiest (based on absolute or relative state-of-health or both)processing module 124 as the active processing module 124 (or, in anactive-active configuration, as being primarily responsible for handlingcritical tasks, functions, and operations).

When no healthy processing module 124 is available, the arbitrationmodule 2000 implements emergency measures, activates an alarm indicatingthat there is currently no available healthy processing module 124, andreports the alarm to the user and/or a remote node 1500, such as thevendor, manufacturer, servicing entity, roadside service, and the like.

The emergency measures implemented can vary by application. In oneapplication, the emergency measure is to identify which processingmodule 124 is healthy to perform each set of critical and optionallynon-critical tasks, functions and operations. If a healthy processingmodule exists for each set of critical and optionally non-criticaltasks, functions and operations, the arbitration module 2000 assignseach set of critical and optionally non-critical tasks, functions, andoperations to a processing module 124 having a sufficiently high healthscore (e.g., above a selected threshold) to perform the selected set ofcritical and optionally non-critical tasks, functions and operations.Where multiple processing modules are healthy enough to perform theselected set of critical and optionally non-critical tasks, functionsand operations, the arbitration module 2000 can select the processingmodule having the highest health score for the selected set of criticaland optionally non-critical tasks, functions and operations and/orhaving the highest available or unused processing units or resources toperform the selected set of critical and optionally non-critical tasks,functions and operations. Where no processing module 124 is healthy toperform a selected set of critical and optionally non-critical tasks,functions and operations, the selected set of critical and optionallynon-critical tasks, functions, and operations can be performed by aremote node, via first, second, . . . network 1504 a, b, . . . . Theremote node 1500 can be, for example, the vendor, manufacturer,servicing entity, roadside service, and the like. In one application,the critical and optionally non-critical tasks, functions, andoperations are performed by a remote node 1500, via first, second, . . .network 1504 a, b, . . . , rather than by a local or on board processingmodule 124.

An important aspect of an active-standby configuration can be how tomaintain synchronicity between the active and standby processing modulesto enable “hot” hand-offs, which can be particularly important forautomotive applications, without loss of memory as to the currentoperational state of the vehicle and its component tasks, functions, andoperations. One technique is to have the standby processing module 124perform “shadow” processing in which it receives all input received bythe active processing module 124 and performs the same processing tasks,functions, and operations as the active processing module 124. Theassumption is that the two processing modules 124 have identicalprocessing rates and therefore, at any one time, precisely duplicate theother as to processing state of completion as to any task, function,and/or operation. Due to varying processing loads on the processingmodules, delays in signal transmissions, and other factors, thisassumption may or may not be true. Another technique is to have thestandby processing module 124 receive, and store in memory 220,time-stamped processing state information from the active processingmodule 124. The time-stamped processing state information relates to anyprocessing task, function or operation currently being performed by theactive processing module 124 and the results thereof. A potential issuewith this approach is latency between the current and reported states ofthe active processing module 124. Another technique is a combination ofthe foregoing techniques. In this technique, the standby processingmodule 124 performs “shadow processing” but periodically checks itsprocessing state information against the time-stamped processing stateinformation received from the active processing module 124 and resets,alters, or updates its state information to reflect the receivedprocessing state information. Where a processing string is beingperformed correctly, it does not typically need to be revised to reflecta potentially earlier point reflected in the received and time stampedstate information (which may be delayed). A reset to an earlier point inthe processing string may be appropriate where the standby processingmodule 124 is too far ahead of the active processing module 124. Theprimary purpose of this combined approach is to confirm processingaccuracy by the standby processing module 124 and to keep the standbyprocessing module 124 from getting too far in advance of the activeprocessing module 124 in processing information.

Operation of Remote Control Module 2040

FIG. 27 depicts a particular configuration of a remote node 1500. Theremote node 1500, configured as a central repository for vehicleinformation, includes a server 2700 and associated database 2704. Theremote node 1500 is in wireless communication, via network 1504, withfirst, second, . . . nth vehicles 100 a-n. Currently, car drivers havethe option to sign up for a service like General Motors OnStar® toremotely unlock cars, and provide other features such as remote start,tracking vehicles, and/or locking cars, etc.

In some embodiments, the present disclosure is directed to a centralrepository 2704 that can be used in conjunction with an individualvehicle. The central repository may be stored remotely (as shown) oron-board the vehicle. In the event that the central repository is storedremotely, it may be supervised by a law enforcement agency, or secureadministrative agency. It is anticipated that strong security proceduresmay be employed to avoid hacker attacks, especially if stored at aremote central repository like the Department of Motor Vehicles (DMV),or other security-approved location. In the event that a vehicle isstolen, the true owner of a vehicle may prove ownership to the centralrepository and locate, lock, shutdown, etc. the vehicle.

In another embodiment, a police device may communicate to anothervehicle to slowly reduce that vehicle's speed, shutdown the engine, cutpower, etc. The communication can be securely effected using uniquecodes or other cryptographic techniques. Moreover, the communication maybe through a server associated with a central repository. It isanticipated that the module controlling these functions is securelyguarded and designed to prevent hacking attempts.

The operation of a system stand-by procedure 600 implemented by a remotecontrol module 2040 and/or other component of a processing module 124will now be discussed with reference to FIG. 6. Stand-by procedure 600may be activated when the selected processing module 124 transitionsfrom active to standby or standby to active or in response to a commandfrom the operator or the remote node 1500. In one configuration,stand-by procedure 600 may also be activated manually by the driver ofthe vehicle or by another third party. For example, the driver oranother third party may wish to disable certain aspects of vehicle 300(i.e., the driver may wish to disable certain functions, either criticalor non-critical, of the vehicle to prevent another user of the vehicle,such as a valet, from accessing them, a third party, which may be thepolice or a theft prevention service such as On-Star, may wish todisable a stolen vehicle or a vehicle which is otherwise in violation ofthe law).

Manual activation of stand-by procedure 600 may be done locally orremotely. For local activation, an additional component in the form of aswitch may be added and connected to the processing module via a bus oras a expansion module 290A-N. The driver may then manually activate theswitch as needed.

Most likely, manual activation of stand-by procedure 600 is doneremotely (i.e. by the police, theft prevention service, or the owner ofthe vehicle at a remote location). As such, in one implementation, thecorresponding processing module may be accessed via a non-physical bussuch as by wireless interface 280. However, this is not the preferredmethod. As discussed previously, vehicle components communicating with aprocessing module wirelessly should only work with a secured scheme. Thein-vehicle wireless network should not be accessible to third partiesfor further security purposes. A direct access to the in-vehiclewireless bus would defeat these principles. The wireless interface 280may have a limited range such that connection and control can only beeffected within the vicinity of the vehicle. Nevertheless, thisimplementation may be useful in cases where there is an emergency thatis within the vicinity of the vehicle (i.e., emergency road closure)that requires a third party such as the police to disable passingvehicles for safety reasons. In such cases, the authorized third partymay activates codes that bypasses securities of the in-vehicle wirelessnetwork that is normally off-limit and directly access the processingmodule. In another implementation, the vehicle may have a cellular orsatellite communication component that has the capability of accessingan outside cellular or other communication network. Alternatively, thiscommunication component may be installed as an additional expansionmodule 290A-N as discussed previously. Access to processing module isgranted through a valid security verification within this component.Therefore, access to the processing module using this implementationdoes not require open access to the in-vehicle wireless bus.

In another configuration, stand-by procedure 600 may also be activatedby a control system within the vehicle when some automated condition ismet. For example, a leased or rental car company may wish to limit thegeographical location where the vehicle can be driven. The vehicle maybe automatically disabled if it is detected that the vehicle has leftthe allowed zone of operation (i.e. detected via a GPS).

In step 601, the method confirms if any critical subsystem would beunavailable. As discussed above, a critical subsystem may be unavailablebecause it did not pass the health check, because it was disabled by thedriver or a third party, or because some automated condition has beenmet.

If critical subsystems are unavailable, step 610 performs generalvehicle stand-by. In one configuration, general vehicle stand-bydisables all components of the vehicle rendering the vehicle unusable.However, this may lead to safety issues where a sudden shut-down of thevehicle while operating on the road may be hazardous to both the driverof the vehicle and other vehicle on the road. In another configuration,general vehicle stand-by performs a shut-down of non-critical systemswhile placing a limit on critical system designed to bring the vehicleto stop. For example, a speed limiter may limit the speed of the vehicleto a minimal speed so that the vehicle can be bought to a safe stopsubsequently but cannot operate effectively. After the vehicle isbrought to a stop, general shut-down that disables all components of thevehicle may be performed.

In step 620, an alarm is activated to inform about the status of ageneral stand-by. Here, similar to step 540, an alarm is normally sentto at least components like display 144 or entertainment system 190 ofvehicle 100 via a reliable bus such as the high speed CAN bus to informthe driver of the generally stand-by. In one implementation, an alarmmay also be sent to a remote node 1500, such as a service or maintenanceprovider, e.g., a nearby or a default car repair facility with possiblesystem diagnosis information, emergency services if it is detected thata emergency affecting road safety has occurred, and/or to carmanufacturers for data collection and other purposes.

If critical subsystems are not unavailable in step 601, the methodfurther confirms if any non-critical subsystem is unavailable 602. Ifany of the non-critical subsystem is indeed unavailable, the methodperforms specific stand-by on the specific subsystem 630.

Specific stand-by 630 involves performing stand-by only for a specificnon-critical subsystem. For example, if entertainment system 190malfunctions, entertainment system 190 can be safely turned off withoutaffecting the operation of the vehicle. However, some non-criticalfunctions may be affected such as an alarm function announcing certaininformation that is pre-disposed to be announced by entertainment system190. In this case, specific stand-by 630 may include rerouting theinformation to display 144, perhaps with the information to be presentedin abbreviated form to ensure the information will be presentable ondisplay 144. Specific stand-by 630 for entertainment system 190 may alsoinvolve rerouting information to other perceptible methods such as bylight or sound.

In step 640, the method activates an alarm to information driver andthird-party services of specific subsystem stand-by similar to step 620.

FIG. 9 depicts a method of operation of the remote control module 2040.There are a number of examples of operation by a remote control module2040.

In one example, a police officer or other law enforcement authorityand/or rule trap sensor can “ping” an automobile for informationrelating to its speed and driving conditions. By comparing this receiveddata from the automobile to known data relating to stop signs, speedlimits, and the like, a decision can be made on whether the law has beenbroken. For example, the sensor itself may not necessarily determine thespeed of a vehicle. The sensor asks the vehicle to respond to the sensorwith the vehicle's speed and possibly other information. Therefore, thespeed detection is achieved through responding to a sensor's questionand the vehicle's answer. It is anticipated that a specific sensor mayuse alternate detection methods to verify the accuracy of a receivedsignal. For instance, if a vehicle is asked to respond with a currentspeed value, and does so, the sensor may send a radar signal to verifythe response. If the response does not match the verification signal, anote is made of the anomaly and the data is recorded. This data may beused by law enforcement to later identify vehicles that aremalfunctioning and/or have been compromised. The identity of the car,including serial number, owner identity (e.g., name, home address,contact information, driver's license number, insurance information(e.g., name and address of insurance company, owner's insurance policyidentification, and coverage limits), and the like), and/or licensinginformation (e.g., license plate number) can be provided by the vehicleto the requestor.

In another example, a law enforcement authority, owner, or otherprivileged entity may request a critical or non-critical task, functionor operation to be disabled or behave in a selected manner. Forinstance, a law enforcement officer can cause the vehicle to deceleratein a high speed pursuit or, for a high speed pursuit or stolen car, candisable the engine.

In another example, a remote node 1500, such as a law enforcementauthority, an insurance company, an intelligent sign or traffic signal,a roadside monitor, or the owner himself or herself requests historic orcurrent vehicle operating information, such as speed, and/or informationreceived by the vehicle from an external source, such as a stop light,speed limit sign, yield or stop sign, and the like. This information canbe compared to identify poor driving practices and/or breaking of thelaw. It can also be used in accident reconstruction to determine who isat fault in an automobile accident where vehicle operators frequentlydishonestly represent who is at fault. Currently, responsible driverspay inflated insurance premiums because the insurance industry cannotguaranty a particular driver's adherence to the law or general drivingbehavior. To address this concern, current insurance companies may allowa driver to install a device in a vehicle to randomly monitor behavior.This device can only monitor certain functions and requires theinstallation of a device separate from the vehicle's ecosystem. Thepresent disclosure is directed to using various data compiled by thesystem to analyze factors contributing to an individual's drivingbehavior and/or habits. In the event that an individual wishes toreceive better insurance rates for responsible driving, a lower quantityof driving, or other good driving indicators, the driver may agree toprovide insurance tracking information. The insurance tracking systemmay consider GPS and other location-based information (to compare actualspeed with speed limit data), g-force sensors (to detect rapidacceleration, hard turns, etc.), perimeter sensors (to detectclose-calls, inattention while changing lanes, etc), in order todetermine conformance with the good-driving terms established by aninsurance company. Because the device may be integrated, and/orassociated, with the vehicle's ecosystem total behavioral data may berecorded and sent in real-time to a receiving module. Moreover, thesystem may detect the user and provide accurate information for eachuser of a vehicle.

Referring to FIG. 9, the remote control module 2040, in step 900,receives a request to command a vehicle task, function and/or operationand/or to transmit specified information to the requestor.

In step 904, the remote control module 2040 attempts to authenticate therequestor. User authentication is a way of identifying a user andverifying that the user is allowed to access some restricted service.Authentication can be performed by, for example, by encrypted symmetricor asymmetric key exchange, public and private key cryptography, asecure remote password, multi-factor authentication (e.g., three majorfactors include verification by something a user knows (such as apassword or PIN), something the user has (such as a smart card, ATMcard, or a security token), and something the user is (such as the useof biometrics, such as a fingerprint or retina scan)), time-basedauthentication, a unique digital identity, closed-loop authentication,access control service, and the like.

Control then passes to decision diamond 908 where the remote controlmodule determines whether authentication was successful. Whenauthentication is successful, the remote control module, in decisiondiamond 912, determines whether the requestor is privileged to make therequest. In other words, a first requestor is entitled to a first set ofprivileges with respect to access to vehicle information and/or controlof vehicle tasks, functions, and operations while a second requestor isentitled to a different second set of privileges with respect to accessto vehicle information and/or control of vehicle tasks, functions, andoperations. A law enforcement entity or vehicle owner, for example, willgenerally have a highest level of privilege (enabling broad access tovehicle information and/or control of vehicle tasks, functions, andoperations) while an insurance company or servicing entity will not havethe highest level of privilege.

When the requestor is entitled to make the request, the remote controlmodule, in step 916, executes or causes execution of the request inaccordance with rules governing what the privilege accorded therequestor, which may override operator and/or other occupant commands.

When the requestor is not entitled to make the request, the remotecontrol module, in step 920, ignores the request and logs in memory 220the information surrounding the request, e.g., the identity of therequestor, the time stamp of the request, and the request itself.

Operation of Computational Module Selector 2052

The operation of a processor off-load procedure 700 by computationalmodule selector 2052 one or more processing module(s) will now bediscussed with reference to FIG. 7. This operation is particularlybeneficial in an active-active configuration but may be used in anactive-standby configuration. As discussed with respect to vehicle 300of FIG. 3, some configurations of expansion modules 290A-C may requireprocessor off-load to share processing functions of tasks among a numberof expansion modules in a common host processing module 124 or acrossdifferent processing modules 124. For example, a first expansion module290A and/or host processing module 124 may be specialized for criticalfunctions while a different second expansion module 290B and/or hostprocessing module 124 is specialized for non-critical functions. In anevent where the first expansion module 290A and/or its host processingmodule 124 loses some processing power, the first expansion module 290Aand/or its host processing module 124 may be able to off-load somecritical function to second expansion module 290B and/or its hostprocessing module 124.

In step 701, the method continuously checks if a next processing module,expansion module, and/or external computational device(s) 1532 (inwireless communication with the network controller 1528 via thegateway/firewall 1512) is available with excess processing power. If anext processing module, expansion module, and/or external computationaldevice(s) 1532 is not available, the method will check at some timeinterval later to see if a new processing module, expansion module,and/or external computational device(s) 1532 would have a change in anumber of available and/or unavailable processing power units and/orbandwidth. Other stimuli for this step 701 include a user request toinitiate execution of an application, notification of a processingresource having unused bandwidth below a selected threshold,notification of a processing resource having used bandwidth above aselected threshold, a power level of a processing resource falling belowa selected threshold, notification of a processing resource having anoperational error, malfunction, or outage, and the like.

If a next processing module, expansion module, and/or externalcomputational device(s) 1532 is available, the method confirms with thenext processing module, expansion module, and/or external computationaldevice(s) 1532 on its available processing power units and/or bandwidthfor a task 710. Other factors considered in determining whether aselected processing module, expansion module, and/or externalcomputational device is available include not only the processingresources available but also the application and operating systemrequirements as compared to the capabilities of the selected processingmodule, expansion module, and/or external computational device and powerlevel in the selected processing module, expansion module, and/orexternal computational device. In one configuration, processing module,expansion module, and/or external computational device(s) 1532 may bedistinguished depending on the type of processing needed. For example, acritical function might not be suitable for a processing module thatdeals only with non-critical functions and vice versa due to safety,security, or other concerns. In other configurations, a criticalfunction might look for a processing module that is tasked with adisproportionally high non-critical function load to balance theprocessing load.

If the selected processing module, expansion module, and/or externalcomputational device(s) 1532 is available to process a given task,function or operation 710, the task is off-loaded to the selectedprocessing module, expansion module, and/or external computationaldevice(s) 1532.

If the selected processing module, expansion module, and/or externalcomputational device(s) 1532 is not available to process a given task,function or operation 710, the procedure continues to check if any otherprocessing module, expansion module, and/or external computationaldevice(s) 1532 is available 702. If there is a different processingmodule, expansion module, and/or external computational device(s) 1532available, the method returns to step 701.

If there is no other processing module, expansion module, and/orexternal computational device(s) 1532 available, the method informs theactive processing module, expansion module, and/or externalcomputational device(s) 1532 of no available offload capacity 730. Inone configuration, the active processing module may decide to drop thetask that it is unable to handle. The active processing module,expansion module, and/or external computational device(s) 1532 may alsodecide to return to step 701 to continue to check for a next availableprocessing module, expansion module, and/or external computationaldevice(s) 1532.

A further set of operations for the computational module selector 2052will now be discussed with reference to FIG. 23. This set of operationsidentifies, for a selected computational module, such as an expansionmodule, software application, or other computational module, whichprocessing modules or external computational device(s) 1532 contain theselected computational module for purposes of computational moduleselection. While the prior flow chart depicts a method to balanceprocessing load amongst plural processing devices, the present flowchart selects which duplicative computational module should perform arequest by a user.

In step 2300, the computational module selector 2052 detects a stimulus.Exemplary stimuli include a user or operator request to initiate acomputational module and/or perform a selected task, function, oroperation, an interrupt based on a passage of a predetermined time,installation of a computational module, a request by a different user touse a platform currently executing the computational module,notification of a processing resource having unused bandwidth below aselected threshold, notification of a processing resource having usedbandwidth above a selected threshold, a power level of a processingresource falling below a selected threshold, notification of aprocessing resource having an operational error, malfunction, or outage,and the like.

In step 2304, the computational module selector 2052, in step 2308,determines duplicated computational modules and the host processingplatform(s) therefor. Host processing platforms can include a processingmodule, expansion module, and/or external computational device(s) 1532.Duplication may be for a specific computational device (e.g., from acommon vendor and commonly named) or for a common type of computationaldevice. For example, duplication may be determined for the differingversions of automotive navigation system applications GPS Drive™ byMotionX™, Garmin GPS™, Magellan GPS™, Tomtom GPS™, and other SPS systemsor for all navigation applications generally regardless of vendor,application identity, or version.

In step 2312, the computational module selector 2052 selects acomputational module and platform to execute each duplicatedcomputational module. For example, if an occupant requests, by aninput/output system of the vehicle, a game or multimedia application andif different versions of the game or multimedia application are on aprocessing module 124 and external computational device(s) 1532, thecomputational module selector 2052 can select the most recent version ofthe game or multimedia application and host platform containing same,regardless of whether the host platform is a processing module orexternal computational device 1532 currently in communication with aprocessing module and by what device, whether an input/output system oruser interface of the external computational device 1532 receiving therequest. If the request were to be received by an input/output system1600 to initiate a game and the most recent version of the game werelocated on a processing module, the processing module would be selectedto execute the game and output would be provided to an occupant by thecorresponding input/output system 1600. If the request were to bereceived by an input/output system 1600 to initiate a game and the mostrecent version of the game were located on an external computationaldevice 1532, the external computational device 1532 would be selected toexecute the game and output would be provided to processing module forpresentation to an occupant by the occupant's input/output system 1600.If the request were to be received by an external computational device1532 to initiate a game and the most recent version of the game werelocated on a processing module, the processing module would be selectedto execute the game and output would be provided to an occupant by theexternal computational device 1532. If the request were to be receivedby external computational device 1532 to initiate a game and the mostrecent version of the game were located on the external computationaldevice 1532, the external computational device 1532 would be selected toexecute the game and output would be provided to processing module forpresentation to an occupant by the external computational device 1532.

In decision diamond 2316, the processing module, or externalcomputational device 1532, by the user interface receiving the stimulus,whether an input/output system or the user interface of the externalcomputational device 1532, queries the user whether or not the olderversions of the computational module should be updated to the newerlocally available or newest remotely available version.

If no or a negative response is received, the computational moduleselector 2352 proceeds to decision diamond 2324.

If a positive response is received, the computational module selector2052, in step 2320, requests the host platform to upgrade thecomputational module.

In decision diamond 2324, the computational module selector 2052determines whether the selected platform is currently available toexecute the computational module. The selected platform may currently beexecuting other computational modules and have insufficient availableprocessing resources for execution. The computational module selector2052, in that event, would attempt to off load some of the processing toanother platform to free up sufficient processing resources forexecution. In other words, the computational module selector 2052 wouldperform processing load balancing to more optimally use processingresources. A user may currently be using the selected platform, such asengaged in a call if the selected platform is a cellular phone orwatching multimedia content. The computational module selector 2052would determine if the platform can request the user for permission touse the platform for processing the computational module. When the useris on a call, such a request cannot be made. If a request can be made,the user is requested. The platform is only deemed to be available whenthe user provides input indicating availability.

When the platform is not available, the computational module selector2052 in step 2328 selects a next available platform even though theplatform may contain an older version of the computational module.

When the selected module is currently available or when thecomputational module selector 2052 selects a different platform in step2328, the computational module selector in step 2328, initiatesexecution, by the selected platform, of the computational module.

Operation of Network Controller 1528

FIG. 24 depicts another operation of the network controller 1528. Asnoted, security for cyber attacks is important for an Internet-enabledvehicle. Drivers are accessing data from Internet service providers viasmart phone, tablet computer, and/or on board or embedded technologiesas well as utilizing hands-free communication technology to send andreceive phone calls and text messages. Automotive manufacturers aresending and receiving data based on electronic sensor readings and eventdata recording. Due to the potentially dire consequences of a securitybreach on on board processing module operation, rigorous securitymeasures should be deployed. While the vehicular network can employpassive techniques, such as configuration of access restrictions inaccess points (such as encryption, checks on MAC addresses, disablingESSID broadcasting, isolation of the vehicular network by the firewalland gateway, hiding the SSID (Service Set Identifier), MAC ID filtering(allowing access from know, pre-approved MAC addresses, static IPaddressing, IEEE 802.11, 802.11i, and/or 802.1x security, use of thewired equivalent privacy encryption, TKIP, EAP, LEAP, PEAP, WPAv 1,and/or WPAv2 protocols, end-to-end encryption (in one or more of 2, 3,and/or application layer), and RF shielding substantially surroundingthe interior of the vehicle (to attenuate signals and prevent wirelesssignals from propagating outside the vehicle), active techniques mayalso be employed. Communications with external computational devices1532 can be channeled through the gateway/firewall 1512.

One active technique is depicted in FIG. 24.

In step 2400, the network controller 1528 detects a stimulus, such as aninstance of a virus, malware, unauthorized access, misuse, modification,denial-of-service attack, spoofing, man-in-the-middle attack, ARPpoisoning, smurf attack, buffer overflow, heap overflow, format stringattack, SQL injection, identity theft (or MAC spoofing), networkinjection, caffe latte attack, or denial of a computer network and/ornetwork-accessible resource. The stimulus may be a warning signalreceived by the network controller 1528 from the gateway/firewall 1512,a honeypot (which is a decoy network-assistant resource to providenetwork surveillance and early-warning tool, a network node, mapping atemplate corresponding to a specific attack type to received signals, anetwork probe, and the like.

In step 2404, the network controller 1528 attempts to confirm theinstance of potential security breach. This can be done by reviewinghistorical behavior, such as shown by communication logs (containingsignal description (e.g., type, source, destination, protocol, andpayload type) and signal receipt timestamps) not only for the currentnode but also for other nodes and comparing the behavior to templatescharacteristic of differing types of attacks and/or applying rules tothe historical behavior. The security breach details, signal description(e.g., type, source, destination, protocol, and payload type) and signalreceipt timestamps), are recorded in memory 220 and firewall settings,including whitelists and blacklists, are updated.

In decision diamond 2408, the network controller 1528 determines whetheror not the computational devices impacted or potentially impacted by thesecurity breach can be isolated from other vehicular network componentsor whether the active processing module can be isolated from othernon-critical computational components. For an external computationaldevice 1532, such as a tablet computer, smart phone, laptop computer,personal digital assistant, and the like, isolation is possible simplyby denying vehicular wireless network access or access, by a componentof the vehicular wireless network, to the external computational device1532. For components in the vehicular wireless network, communicationsto and from the affected components, which normally do not pass throughthe gateway/firewall, can be redirected through and filtered by thegateway/firewall or, depending on the criticality of the affectedcomponent(s), such communications can be blocked. For the activeprocessing module 124, non-critical communications to and from othernon-critical computational components, which normally do not passthrough the gateway/firewall, can be redirected through and filtered bythe gateway/firewall before being provided to the active processingmodule or, depending on the criticality of the communication(s), suchcommunications can be blocked. Critical communications, orcommunications with critical components, typically cannot be delayed byfirewall processing. In one variation, a critical communication securitymechanism is activated when a security breach is detected. The securitymechanism can include, for example, one or more of encrypting accessrestrictions in critical components and the active processing module(such as encryption, checks on MAC addresses, disabling ESSIDbroadcasting, hiding the SSID (Service Set Identifier), MAC ID filtering(allowing access from know, pre-approved MAC addresses, static IPaddressing, IEEE 802.11, 802.11i, and/or 802.1x security, use of thewired equivalent privacy encryption, TKIP, EAP, LEAP, PEAP, WPAv 1,and/or WPAv2 protocols, and end-to-end encryption (in one or more of 2,3, and/or application layer).

When isolation is possible, the network controller 1528, in step 2412,isolates the affected computational device(s) from furthercommunications with or filters communications with the active processingmodule 124 or the active processing module from further communicationswith the affected computational component(s) and alerts the user and/ora remote node 1500 of the security breach and details regarding it.

When isolation is not possible, the network controller 1528 alerts theuser and/or a remote node 1500 of the security breach and detailsregarding it. The critical security mechanism may be activated toprotect the critical components and active processing module.

Operation of Network Selector 2036

The operation of the network selector 2036, a subcomponent of thenetwork controller 1528, will now be discussed with reference to FIGS. 8and 10-11.

Referring to FIG. 8, an active processing module 124, in step 800,receives a signal to transmit to a separate vehicle component. Thesignal can be, for example, from any on board computational component,including an on board sensor 1516 (including those discussed above), acritical or non-critical system controller 2012 or 2016, an on boardsensor monitor 2020, the displayed object movement module 2024, thediagnostic module 2028, the media filter 2032, the remote control module2040, the installation supervisor 2044, the multimedia control module2048, the computational module selector 2052, the media controller 1524,the gateway/firewall 1512, another processing module 124, thetransceiver 1508, an input/output system 1520, a network controller1528, and/or an external computational device 1532.

The network selector 2036, in step 804, selects a network compatiblewith the type and/or required format of the signal, such as one or moreof local wired network 808, local wireless network 812, and/or theinternet 816, to deliver the signal to a selected local or remoteendpoint, including those set forth in the prior paragraph. Theselection is based on one or more factors, including a type, urgency,importance and/or requirements of the signal (e.g., whether the signalcontains an urgent flag or other urgency indicator, a source of thesignal (such as from an on-board sensor or sensor monitor, a criticalcomponent, a non-critical component, and the like), a type of signalpayload (such as whether the signal contains multimedia), transmissionand/or bandwidth requirements for the signal (e.g., requisite maximumlatency, packet loss, jitter, and/or transmission rate, transportprotocol, quality of service, and the like)), an operational status(e.g., operational or nonoperational) of each of the compatiblenetworks, an operational status of an intermediate node on thecompatible networks, a signal/noise ratio over each of the compatiblenetworks, available and/or unavailable bandwidth for each of thecompatible networks, current compatible network performance parameters(e.g., packet drop, latency, jitter, throughput, quality of service, andthe like), and other factors influencing signal quality, reliability,and/or transmission speed.

Generally, the network selector 2036 determines the type, urgency,importance and/or requirements of the signal and one or more of theabove parameters for each of the compatible networks, compares thesignal parameters with the compatible network parameters and selects thecompatible network able to currently best satisfy the requisite signalparameters. For example, a signal from a critical component generally istransmitted by a local wired network 808, such as a bus, due to the highsignal quality, reliability and/or transmission speed required for thesignal. A multimedia signal would generally not be transmitted by alocal wired network as it is not commonly incompatible with the signalpayload. Such a signal would more typically be transmitted by a localwireless network 812 (e.g., by Bluetooth™ or WiFi™ or a “hot spot”) or,if the signal recipient (whether or not an on board component or remotenode) has a corresponding IP address, by the internet 816.

Once the compatible network is selected for signal transmission, thenetwork selector 2036, in step 820, configures or causes to beconfigured the signal in accordance with the selected network'stransmission protocol. For example, when the signal is to be transmittedover a local wireless network 812, the signal payload and/or signalitself would generally be packaged (such as by a protocol stack) in aheader and trailer in accordance with an appropriate one of the WiFi™ orBluetooth™ protocols. By way of further example, when the signal is tobe transmitted over the Internet 816, the signal payload and/or signalitself would generally be packaged (such as by a protocol stack) in aheader and trailer in accordance with TCP/IP suite of protocols.

The properly configured or formatted signal is then transmitted over theselected compatible network.

A further operation of the network selector 2036 will now be discussedwith reference to FIG. 10. In this operation, the network selector 2036receives a media stream from a remote node 1500, such as a radio ortelevision station or other Web site, and selects an intermediate localnetwork to carry the media stream to an input/output system forpresentation to an occupant of the vehicle.

In step 1000, a processing module 124 receives the media stream from theremote node 1500. The media stream packets contain destinationinformation associating the media stream with one or more input/outputsystems of the vehicle.

In step 1004, the network selector 2036 determines the transmission modeand/or network based on various parameters, including network status,intermediate node status, signal/nose ratio of the network, type and/orsource of media, available and/or unavailable bandwidth, networkperformance parameters (e.g., availability, packet drop, latency,jitter, throughput, etc.), quality of service, and the like. The networkselector 2036 selects which of the local on board wireless network 812(e.g., generated by a on board or portable component within thevehicle), local wired network 808, and nearby independent wirelessnetwork 1008 (e.g., generated by a component external to the vehicle) isto carry the media to the destination input/output system(s) of thevehicle.

In step 1012, the media is provided, over the selected network, to thedestination input/output system(s).

Operation of Media Controller 1524

A further operation of the network selector 2036 and operations of themedia controller 1524 will now be discussed with reference to FIG. 11.In this operation, the network selector 2036 receives a signal, whichtypically includes a media payload, from a local or remote node andselects an intermediate local compatible network to carry the mediastream to an input/output system for presentation to an occupant of thevehicle. Depending on an input/output system mode, the signal isdirected by the media controller 1524 only to a subset or to all of theinput/output systems. In a dependent mode, common content is providedsynchronously to each of the input/output systems while in anindependent mode different content is provided to different ones of theinput/output systems. While each occupant controls his or herinput/output system in independent mode, the operator controls allinput/output systems in the dependent mode. This is particularlybeneficial for young children as occupants. The operator typicallyselects which of the modes is in effect in the vehicle at any one time.

In step 1100, the processing module 124 receives a signal for graphicalpresentation to one or more occupants. The signal typically comprisesmedia as a payload.

In step 1104, the network selector 2036 determines the transmission modeand/or compatible network based on various parameters, including networkstatus, intermediate node status, signal/nose ratio of the network, typeand/or source of media, available and/or unavailable bandwidth, networkperformance parameters (e.g., availability, packet drop, latency,jitter, throughput, etc.), quality of service, and the like. The networkselector 2036 selects which of the local on board wireless network 812(e.g., generated by a on board or portable component within thevehicle), local wired network 808, and Internet 818 is to carry themedia to the destination input/output system(s) of the vehicle.

In step 1108, the media controller 1524 determines which of theinput/output systems are to receive the media. There are a number offactors that can influence this decision. The first is whether theinput/output systems are in dependent or independent mode. The second iswhether an applicable law, whether federal, state, provincial, or local,limits the operation of one or more of the input/output systems. Thesatellite positioning system receiver on board the vehicle can provide,at any time, the precise vehicle position to a processing module. Theprocessing module can use the position coordinates to determine a set ofapplicable laws and, from the set of applicable laws, determinerestrictions on input/output systems of vehicles within thatjurisdiction. Restrictions may also be configured by the operator of thevehicle. These legal and operator restrictions are collectively referredto as rule set(s) 1612. For example, exemplary restrictions, or rulesets 1612, include not providing videos to the operator when the vehicleis in gear or moving, banning texting in the vehicle when the vehicle isin gear or moving, and banning cellular calls when the vehicle is ingear or moving. Restrictions may, alternatively, require the media to bepresented to the operator and/or occupant in a specific manner. Forexample, the audio channel of a video may be permitted to be played inthe absence of the video channel of the video. A cellular call may bepermitted using a hands-free mode but not using a handheld phone.

In step 1112, the media controller 1524 configures and transmits thesignal in accordance with the selected network and the restrictions, ifany, determined in step 1108. Configuration refers not only toformatting and including the addresses of the input/output systems toreceive the signal but also to changing the media payload, such as, forinstance, removing video content while leaving audio content.

Upon receipt, the signal is processed by the display and/or audiocontrollers 1604 and 1608 and presented, by the recipient input/outputsystem and over the corresponding input/output system to the occupant.

FIG. 17 depicts another operation of the media controller 1524.

In step 1700, the media controller 1524 detects a stimulus, such as anoccupant request to change the operational mode of an input/outputsystem.

In step 1704, the media controller 1524 determines a current operationalmode of the input/output system associated with each of the occupants(e.g., independent or dependent operation) and whether the occupant hasauthority or is privileged to request the change. The mode is changedonly when the occupant is authorized or privileged to make the change.

In step 1708, the media controller 1524 determines when the requestor isauthorized or privileged to request the operational mode change, theinput/output system preferences of each of the occupant user(s)including the requestor.

In step 1712, the media controller 1524 determines when the requestor isauthorized or privileged to request the operational mode change, thepertinent rule set(s) 1612. As noted, the rule set(s) 1612 include rulesset by the owner or operator of the vehicle, manufacturer of thevehicle, and as a matter of applicable law.

In step 1716, the media controller 1524 determines when the requestor isauthorized or privileged to request the operational mode change, acurrent state of each of the input/output system(s). The current stateincludes not only the on/off status and settings but also the contentbeing displayed and operations currently being performed by the occupantfor each of the input/output systems.

In step 1720, the media controller 1524 determines when the requestor isauthorized or privileged to request the operational mode change, acurrent display configuration of each of the input/output systems.

In step 1724 and when the requestor is authorized or privileged torequest the operational mode change, the media controller 1524configures or reconfigures each of the input/output systems and thecorresponding displays as required by the new operational mode. Forexample, when the current operational mode is independent and the newoperational mode is dependent, the media controller 1524 blocks contentcurrently being provided to each of the subservient input/outputdisplays in favor of providing to each of the subservient input/outputdisplays the content provided to the master input/output displaycontrolled by the requestor or to display content selected by therequestor. When the current operational mode is dependent and the newoperational mode is independent, the media controller 1524 continues toprovide the content formerly provided to all of the input/output systemsto the requestor's input/output system but returns each of the otherinput/output systems to a default display. From the default display, therespective user can select customized content, which may be the same asor different from the content being provided to the requestor'sinput/output system.

FIG. 18 depicts another operation of the media controller1524.

In step 1800, the media controller 1524 receives a signal from a localor remote node 1500. The signal includes, for example, media from a website or server or communication from a third party.

In optional step 1804, the media controller 1524 unpacketizes the signaland analyzes the payload. This is done, for example, when thedestination for the signal and/or type of payload is not clear from thepacket header and/or trailer.

In step 1808, the media controller 1524 selects an input/output systemto receive the packet payload. This can be based, for example, on thedestination information in the header and/or results of the analysis ofoptional step 1804.

In step 1812, the media controller 1524 determines the applicable ruleset 1612 governing the destination input/output system and/or payloadtype or content.

In step 1816, the media controller 1524 determines a currentinput/output system configuration(s). The current configuration includesnot only settings and capabilities but also whether the input/outputsystem is in the dependent or independent operational mode.

Based on the above information, the media controller 1524 determineswhether the payload can be provided to each of the destinationinput/output systems and, if so, generates a command incorporating thepayload and including commands to the input/output system on how torender and display the content. As noted, the payload cannot be providedto a subservient input/output system when in the dependent operationalmode and the content differs from that provided to the masterinput/output system. It cannot be provided when an applicable rule set1612 prohibits such presentation. It may need to be filtered to removesome of the payload to comply with the applicable rule set 1612.

In step 1824, the command is forwarded to each of the destinationinput/output systems.

FIG. 19 depicts another operation of the media controller 1524.

In step 1900, the media controller 1524 determines a location of eachexternal computational device 1532 by a suitable technique. In oneexample, a signal receiver or transceiver or other connectivity accesspoint, such as a wireless access point, WiFi™ antenna, and the like isplaced at each input/output system and/or near each occupant seatinglocation and/or at the operator's seat. The network interface on thenetwork controller can force external computational devices to connectvia a specified communication protocol, such as by Bluetooth™ or WiFi™

In step 1904, the media controller 1524 determines a spatial location ofeach of the external computational devices relative to one or moreselected connectivity access points. Continuing the example of the priorparagraph, the media controller 1524 measures, at each connectivityaccess point, a signal strength for each detected external computationaldevice and, using the measured signal strengths and a suitable algorithmsuch as triangulation, determines a spatial location of each externalcomputational device and, in step 1908 for each located externalcomputational device, a nearest input/output system and/or occupantseat.

In step 1912, the media controller 1524 determines a pertinent rule set1612 for the determined location of each external computational device.

In decision diamond 1916, the media controller 1524, based on thepertinent rule set 1612, determines whether or not to acceptconnectivity access by each of the external computational devices orwhat limitations to place on such access. In the latter case, specifictasks, functions, and/or operations may be permitted by the pertinentrule set but not others. For example, a cellular phone may be forcedinto hands free calling mode or prevented from texting or using aninstant messaging application or protocol when located at the operator'sseat. The rule set 1612 may be configured as a table listing, by vehiclelocation, an applicable set of legal restrictions and/or permissions andthe restrictions or permissions on specific tasks, functions, and/oroperations.

When unlimited or limited access is permitted by the rule set 1612, suchaccess is provided by the media controller.

In decision diamond 1920, the media controller 1524 monitors each of theexternal computational devices for a change in spatial location. Inother words, the media controller detects movement of any externalcomputational device from a first connectivity access point orinput/output system or seat governed by a first rule set to a seconddifferent connectivity access point or input/output system or seatgoverned by a different rule set. This is so because each connectivityaccess point or input/output system or seat has a corresponding ruleset. When no change detected, decision diamond 1920 is repeated by themedia controller substantially continuously or periodically.

When limited or unlimited access is not accepted (decision diamond 1916)or a location change is detected (decision diamond 1920), the mediacontroller returns to step 1904.

FIG. 25 depicts a further operation of the media controller 1524.Currently, a particular vehicle radio may have access to XM, AM, FM, andin some cases “streaming audio” capabilities through separate sources(remote node(s) 1500). However, it is necessary to change the input on aconsole to receive the information and music from a specific source.

It is an aspect of the present disclosure to provide a console capableof compiling and playing music and multimedia information (such as astreaming video) by a general and/or specific category. It isanticipated that the console may adaptively select the source providingthe content according to specific rules, such as music type. Forexample, the console may select the strongest signal, or highest qualityof channel. Furthermore the data is collected regardless of the sourceand represented by icons (independent of source) on the console. Theseicons may be selected by the user to access content. In oneconfiguration, the icon corresponds to a type of music. The music isband and/or communication mode independent. For example, a “classicalmusic” icon indexes and/or links to all classical music channels,whether AM, FM, streaming, XM, etc.

In some cases, a user may be listening to one station/source while mediainformation is being received and cached from another station/source. Inthe event that the first signal is lost, the cached media signal orstream may play. Additionally, the system may adaptively “signal surf,”for a given category, to determine the best channel to receive thehighest or best quality signal (e.g., S/N ratio, stream or radio wave).Moreover, the system may be able to determine that a reception limit isbeing neared (by pilot signal back or satellite positioning systemreceiver location) and may push delayed broadcast media information orother content to a vehicle computer to be cached and listened to aftercoverage is lost.

In step 2500, the media controller 1524 detects a stimulus indicatingthat caching of media content is to be performed. This may be a requestby a user, a media signal falling below a specified signal-noise ratio,the vehicle nearing an estimated broadcast limit or range of the mediasource (or remote node 1500), a request by a remote node 1500 (or signalsource) to forward content to the vehicle for caching for laterpresentation to the user, a user action requiring the media not to bepresented by the vehicle (e.g., the vehicle operation moves from being“parked” to being in gear (or in “drive” or “reverse”), and the like. Aswill be appreciated, many jurisdiction's laws prohibit displaying mediato a driver while a vehicle is in operation.

In decision diamond 2504, the media controller 1524 determines whetheror not to cache media. Depending on the stimulus, rules configured bythe user or default rules, may cause the stimulus to be ignored. Forexample, when the request is from a remote node 1500 the mediacontroller 1524 may have a rule denying such SPAM-like requests, maydetermine that insufficient memory resources are available to cache thecontent, may determine that the media content or remote node 1500constitutes a potential security breach, or may have the remote node1500 address, identity, or other identifier on a blacklist. When themedia is a video, the video may be cached for one input/output system,name that of the driver, but not for another input/output system, namelythat of a passenger.

In step 2508, when caching is to be performed the media controller 1524commences caching the streaming media for delayed presentation to theuser. As will be appreciated, the media controller 1524 can continuenormal buffering of streaming media packets.

In step 2512, when caching is not to be performed, the media controller1524 can continue normal buffering of streaming media packets but doesnot perform media caching.

FIG. 26 depicts a further operation of the media controller 1524. Theoperation involves conforming media presentation, by input/outputsystem, in a manner comply with a pertinent rule set 1612. For example,instant messages, RSS feeds, Twitter messages, can, in response to avehicle moving from a parked (non-operational) to an operational (inmotion) state, cease displaying this content to the driver and, instead,audibly present the content and message source identifier to the driver,such as reading the source name or address and RSS feeds or Twitter orinstant messages or enabling the audio channel for streaming multimediawhile disabling the video channel.

In step 2600, the media controller 1524 detects a stimulus indicatingthat media presentation is to be altered for one or more input/outputsystems. This may be a request by a user or a change in vehicle statefrom operational to non-operational or from non-operational tooperational (e.g., a user action requiring the media not to be presentedby the vehicle (e.g., the vehicle operation moves from being “parked” ora non-operational state to being in gear (or in “drive” or “reverse” orin motion), or an operational state). As will be appreciated, manyjurisdiction's laws prohibit displaying media to a driver while avehicle is in operation.

In decision diamond 2604, the media controller 1524 determines whetheror not to alter the media presentation for a selected input/outputsystem. When, for example, the vehicle moves from an operational to anon-operational state, the media presentation for the selectedinput/output system can revert automatically to a more functionalformat. For instance, multimedia can have all channels, both audio andvideo, enabled for presentation, by the selected input/output system tothe user. An RSS feed or Twitter or instant message, among others, canrevert to text presentation, with automated reading being disabled.

In step 2608, the media presentation is altered, as determined, for oneor more selected input/output systems.

In step 2612, media continues to be presented, in an unchanged format,on the selected input/output system.

Operation of Installation Supervisor 2044

An operation of the installation supervisor 2044 will now be discussedwith reference to FIG. 12. The operation can provide a plug-and-playfunctionality for automotive components, whether device, hardware and/orsoftware.

In step 1200, the installation supervisor 2044 detects an attempt toinstall a new computational component in the vehicle. The attempt can bedetected by receipt of an installation notification or request from auser or the computational component itself. The computational componentcan be software, hardware, or a combination thereof. Exemplarycomputational components include an on board sensor 1516, a mediacontroller 1524, a gateway/firewall 1512, a processing module 124, anetwork controller 1528, an input/output system 1520, a display and/oraudio controller 1604 and/or 1608, an arbitration module 2000, a healthcheck module 2008, a critical system controller 2012, a non-criticalsystem controller 2016, an on board sensor monitor 2020, a displayedobject movement module 2024, a diagnostic module 2028, a media filter2032, a network selector 2036, a remote control module 2040, acomputational module selector 2052, an expansion module 290, anapplication, a plug-in module, and the like.

In step 1204, the installation supervisor 2044 determines thecharacteristics of the computational component. Exemplarycharacteristics include manufacturer, model number, serial number, dateof manufacturer, and capabilities.

In decision diamond 1208, the installation supervisor 2044 determineswhether the component is already linked to another vehicle. This can bedone by accessing the memory of the installation component itself tocheck for a prior installation or accessing the records of themanufacturer via remote node 1500.

When the component has not yet been linked to another vehicle, theinstallation supervisor 2044, in decision diamond 1212, determineswhether the installation is in compliance with licensing restrictions onthe use of the computational component. Licensing conditions and/orrestrictions can include payment of funds to vendor, use restrictions(e.g., user-based license restrictions (e.g., authorized user,concurrent user, floating user, and user value unit restrictions),capacity-based license restrictions (e.g., install, processor valueunit, server and virtual server restrictions), territorial restrictions(e.g., use permitted only in certain countries, states, provinces, andthe like), and other license restrictions (e.g., client device (or hostvehicle-based restrictions) and resource value unit restrictions)), andother conditions and/or restrictions.

When the component installation is in compliance with applicable licenserestrictions, the installation supervisor 2044, in decision diamond1216, determines whether the computational component is eligible for usein the current vehicle. Eligibility is based not only on specificationsand capabilities of the computational component but also vehiclemanufacturer approval or disapproval of the computational component forvehicles having this particular make, model and year of manufacture.

When the computational component is eligible for use in the currentvehicle, the installation supervisor 2044, in step 1220, creates datastructures in the memories of the computational component andcomputational module binding the computational component to the vehicle.This can be done, for example, by creating data structures in the memoryof the computational component containing a serial number or vehicleidentification number of the vehicle and in the memory 220 of theprocessing module containing a serial number or other unique identifierfor the computational component and a description of the type, make,model, year of manufacture, and date of installation of thecomputational component.

When any of the following is true, namely the computational component isalready linked to another vehicle (decision diamond 1208), the licensedoes not permit the installation of the computational component(decision diamond 1212), and/or the component is ineligible for use withthe current vehicle (decision diamond 1216), the installation supervisor2044, in step 1224, ignores the computational component, and thereforerefuses installation of same, logs the attempted installation (includinga description of the computational component and time stamp associatedwith the attempted installation) and/or notifies a remote node 1500(such as a manufacturer for purposes of warranty invalidation) and/orthe operator of the invalid attempt.

Operation of Media Filter 2032

An operation of the media filter 2032 will be discussed with referenceto FIG. 13.

In step 1300, a processing module 124 receives a signal from a thirdparty source, such as a web site or server (in response to web browsing)or a communication from a third party, such as email, text, cellularcall, and the like, for presentation to an occupant.

In step 1304, the media filter 2032 determines preferences of theoccupant and/or other restrictions. Preferences include, for example, awhite or black list (of approved or disapproved message sourcesrespectively), presence of the destination occupant as received from apresence server or service associated with the destination occupant,preferences of or rules relating to the destination occupant asdetermined by another occupant having privileges to control contentpresented to the destination occupant (e.g., parental control of contentand/or communications presented to a child), context of the destinationoccupant (e.g., driving the vehicle, engaging in an unrelated higherpriority activity on the input/output system associated therewith,etc.), and governing laws (or an applicable rule set 1612).

In decision diamond 1308, the media filter 2032 determines, based on thedetermined preferences and/or restrictions from step 1304, whether ornot to block the signal or alter the payload of the signal to conformwith the preferences and/or restrictions.

When the signal is not to be blocked, the media filter 2032 proceeds tostep 1312 and presents the signal or its payload to the destinationoccupant. The signal may be blocked, for example, when it is a call toan operator while the vehicle is in motion (to comply with a state orlocal law). Electronic SPAM may be blocked.

When the signal is to be blocked, the media filter 2032 proceeds to step1316 and blocks the signal. The signal may be blocked, for example, whenit is a call to an operator while the vehicle is in motion (to complywith a state or local law). Electronic SPAM may be blocked.

Operation of Diagnostic Module 2028

The diagnostic module 2028 queries on board sensors 1516 and/or on boardsensor monitor(s) 2020, and/or critical and/or non-critical systemcontroller(s) 2012 and 2016 to determine states of various parts,components, subsystems, tasks, functions, and/or operations of thevehicle. The diagnostic module 2028 can then perform diagnostics usinglocally stored or remotely stored (at remote node 1500) pre-determinedlogic to identify faults, malfunctions, or other problems and,optionally, generate repair advice and/or warnings and/or instructionsand/or recommendations to the vehicle operator. This diagnosis can alsolocate and/or determine and/or identify any parts or components requiredto repair the vehicle, the source and/or source(s) for replacement partsand/or components, identify a nearest and/or preferred service or repairfacility or service, provide an estimate of the repair cost at aselected facility and/or comparative estimates at different facilitiesin proximity to the vehicle's current location, and/or obtain anymanufacturer's and/or vendor's update information required to repair orresolve the identified fault, malfunction, or other problem. Thediagnostic module 2028 can provide any repair instructions and/orrecommendations to the operator, pre-order the replacement parts and/orcomponents, contact the nearest and/or preferred service facility for arepair estimate, contact the nearest and/or preferred service facilityto schedule an appointment for the repair or service, and/or forward,optionally at the owner's and/or operator's instructions, the collectedinformation regarding the fault, malfunction, or other problem to aremote node 1500 (specified by the operator and/or owner) for monitoringand/or evaluation. The owner and/or operator can have a default locationor select a location for fault, malfunction, or other problem analysisassistance.

FIG. 14 depicts an operation of the diagnostic module 2028.

In step 1400, the diagnostic module 2028 receives, from a local orremote source (such as the remote node 1500), a signal warning of anactual or potential malfunction of an on board component, including anyof the components discussed above.

In step 1404, the diagnostic module 2028, in step 1404, determines userand/or default preferences regarding treatment of the signal. Thevarious options include one or more of present the signal to a thirdparty such as a manufacturer or servicing entity (option 1408),presenting the signal to an occupant of the vehicle (option 1412),contacting an emergency service provider or first responder (e.g.,request tow truck or roadside service provider, contact police, and/orrequest dispatch of an ambulance), and performing on board diagnostics(option 1416) to obtain more diagnostic information regarding the actualor potential malfunction followed by option 1408 or 1412. In oneapplication, the signal is forwarded to a manufacturer or repair servicevendor that compares the reported fault and vehicle-specific parameters(e.g., mileage, date of last service, and/or environmental conditions)to the maintenance and/or fault history for the vehicle model andprovides, to the vehicle operator, the result of the comparison alongwith a probability of the diagnosis being correct. The signal caninclude, for example, a current (SPS or map) location of the vehicle, anidentity of the vehicle and/or vehicle owner or occupant, and diagnosticinformation and/or diagnosed cause of the warning signal. Themanufacturer or service vendor also updates its database for theparticular model of the vehicle to reflect the reported fault. Themanufacturer or service vendor can dispatch an emergency serviceprovider or first responder to the location reported by the vehicle SPS,and/or schedules the workload for the repair shop and pre-orders therequired part(s) for the repair shop. The diagnostic module canrecommend a source of conduct or action (including those discussedabove) for the vehicle operator and, if accepted, execute or causeexecution of same.

In step 1420, the diagnostic module 2028 determines a further treatmentof the warning or error signal. The determination may be based, forinstance, on a command or request received from the third party oroccupant or an applicable set of rules and/or policies.

FIG. 28 depicts another operation of the diagnostic module 2028.

FIG. 28 depicts a vehicle ecosystem capable of providing accurateindications for purposes of service and maintenance in accordance withembodiments of the present disclosure. Currently, vehicles may offer awarning light and/or series of lights to provide information to a userregarding vehicle condition. These lights may have a multitude ofmeanings that may require further inspection by a mechanic or otherqualified individual. In order to interpret and decode the meaningsbehind a light combination, the user is routinely required to consultthe owner's manual, the Internet, or to call the dealer. In some cases,these lights are only maintenance reminders and need not be immediatelyaddressed. However, in other cases, the lights are urgent and requireimmediate attention.

The present disclosure can provide an Internet enabled car that iscapable of transmitting vehicle codes, error code readings, and toremotely diagnose and display these codes to a user and/or a mechanic.This diagnostic information may be performed on-board or remotely. It isanticipated that the information may be accessed according to chosenpreferences. Additionally, it is anticipated that based on the type ofwarning/error code, the system may suggest a recommended course ofaction. For example, if the error code indicates a severe orcatastrophic failure the system may suggest to pull-over, stop the car,and proceed to a safe area away from the automobile.

In some embodiments, the system may provide “conversational” warnings toa user. These warnings and associated codes may also be simultaneouslytransmitted to a selected garage and/or postponed for approval totransmit to the nearest garage (either wired or wirelessly). Inaddition, the system may estimate an approximate time to fix (based onpast garage fix times, garage inventory, severity of problem,combinations, etc.) and make appropriate suggestions. For example, thesystem may provide the conversational warning “Please do not be alarmed,your engine is running slightly low on oil; there are four garages inthe general area. You have time to get a cup of coffee while you wait;here are three coffee shops in the immediate location” and/or “Itappears that the rear left suspension is malfunctioning and the upperstrut will need to be replaced. It is noticed that you are greater than80 miles from home, would you like to book a reservation at a localhotel? There are five hotels in the area rated three stars or above.”

Referring to FIG. 28, the diagnostic module 2028, in step 2800, receivesand interprets a maintenance and/or system error and/or warning code.Such codes are known in the art of automotive design and generallydepend on the automotive and/or component manufacturer. Accordingly, thediagnostic module 2028 will, generally, have a lookup table or other setof data structures to map the code not only to a corresponding conditionand/or conversation meaning but also behavioral rule in a rule set. Inappropriate applications, the conversational meaning can be furtherdetermined based on the condition.

The diagnostic module 2028, in step 2808, provides the conversationalmeaning, such as audibly and/or visually, to the vehicle operator.

The diagnostic module 2028, in step 2812, determines other factorsrelated to the received code(s). The pertinent rule in the rule set, forexample, can cause the diagnostic to query other components potentiallyimpacted by the condition and/or having other data points relevant tothe condition. The diagnostic module 2028, in accordance with thepertinent rule, may contact a remote node for additional informationrelevant to the code, including the conversational advice to be providedto the vehicle operator.

In step 2816, the diagnostic module 2028 provides the conversationaladvice to the operator. The advice may be interactive in which event theoperator would query the diagnostic module 2028 for information notclear from the initially provided conversation meaning and/or advice. Amenu-type structure can be used by the diagnostic module to respond tothe operator request for further information. Such further informationmay require the diagnostic module to initiate a contact, on behalf ofthe operator, with a remote node 1500.

In step 2820, the diagnostic module logs codes, internally and/orprovides the codes to a remote node 1500 for logging, and provides fortransfer of the operator to a selected entity or entities, such as oneor more remote nodes 1500.

In step 2824, the diagnostic module 2028 optionally transfers the codes,on a predetermined stimulus, to a remote node 1500.

Operation of Displayed Object Movement Module 2024

An operation of the displayed object movement module 2024 will now bediscussed with reference to FIGS. 21 and 22. The displayed objectmovement module 2024 enables a user to share displayed content or otherimage, in substantial real time and not via a transmitted message, withone or more other input/output systems. The displayed object can be anydisplayed image, including streaming video, a web page, an icon, awindow, an application, and the like.

In step 2100, the displayed object movement module 2024 detects astimulus. The stimulus can be, for example, receipt of a gesture by atouchscreen display of an input/output system, user selection on a firstinput/output system of a different second input/output system to whichthe displayed object is to be moved, and the like.

In step 2104, the displayed object movement module 2024 determines,based on the stimulus, to which input/output system display to move thedisplayed object.

FIG. 22A depicts one technique to determine the destination input/outputsystem(s). Each of the dashed lines 2208 a-connecting to the displayedobject 2204 in the display 2200 indicates a direction, or vector, alongwhich the displayed object 2204 is to be moved. The displayed objectmovement module 2024 projects the direction to determine an input/outputdisplay intersected by or nearest the projection of the vector. By wayof illustration, the first gesture 2208 a (if received by aninput/output system in a back seat) will cause the displayed object 2204to move to the driver's input/output system (which corresponds toposition “1”), the second gesture 2208 b (if received by an input/outputsystem in a back seat) will cause the displayed object 2204 to move tothe input/output system positioned in the middle front seating position(which corresponds to position “2”), the third gesture 2208 c (ifreceived by an input/output system in a back seat) will cause thedisplayed object 2204 to move to the input/output system positioned inthe right (facing the front of the vehicle) front seating position(which corresponds to position “3”), the fourth gesture 2208 d (ifreceived by an input/output system in either a front or back seat) willcause the displayed object 2204 to move to the left adjacentinput/output system (relative to the gesture receiving input/outputsystem) (which corresponds to position “4”), the fifth gesture 2208 e(if received by an input/output system in either a front or back seat)will cause the displayed object 2204 to move to the right adjacentinput/output system (relative to the gesture receiving input/outputsystem) (which corresponds to position “5”), the sixth gesture 2208 f(if received by an input/output system in a front seat) will cause thedisplayed object 2204 to move to the input/output system positioned inthe left rear seating position (which corresponds to position “6”), theseventh gesture 2208 g (if received by an input/output system in a frontseat) will cause the displayed object 2204 to move to the input/outputsystem positioned in the middle rear seating position (which correspondsto position “7”), and finally the eighth gesture 2208 h (if received byan input/output system in a front seat) will cause the displayed object2204 to move to the input/output system positioned in the right rearseating position (which corresponds to position “8”).

FIG. 22B depicts one technique to determine the destination input/outputsystem(s). The display 2200 of the user's input/output system displays aseating diagram of the vehicle. The first seat icon 2212 a correspondsto the driver's seating position, the second seat icon 2212 b to themiddle front seating position (if present), the third seat icon 2212 cto the right front seating position, the fourth seat icon 2212 d to theleft rear seating position, the fifth seat icon 2212 e to the middlerear seating position (if present), and the sixth seat icon 2212 f tothe right rear seating position. This display would typically beselected from the display containing the displayed object to be movedand would be selected before or after selection of the displayed objectfor movement. Unlike the prior technique, which generally requires thedisplayed object to be moved to multiple input/output systemssequentially or entry of multiple gestures, which can be laborious, theseating diagram enables the displayed object to be moved substantiallysimultaneously to multiple input/output systems. Specifically, selectionof a seating position selects the input/output system servicing theseating position. Multiple seating positions can be selected from thedisplay 2200, which, when a movement command is received, causes thedisplayed object to be moved to each of the input/output system(s)servicing the seating position(s) selected.

Returning to FIG. 21, the displayed object movement module 2024 movesthe displayed object selected for movement to the display of each of theselected input/output systems and alters the current display of each ofthe selected input/output systems to include the moved displayed object.Alteration of the display can depend on the content currently beingviewed at each of the targeted displays. For example, if a targetdisplay is displaying streaming video, the moved displayed object couldbe minimized, giving the user the option of opening the displayed objectand interrupting the video display. If a target display is inactive fora specified time period and therefore in “sleep” or “power down” mode,the moved displayed object could be maximized and the display awakenedfrom a “sleep” or “power down” mode to display the maximized displayedobject.

In decision diamond 2112, the displayed object movement module 2024determines whether to continue display of the displayed object on thesource display which received the movement command for the displayedobject. The determination can be based on default or user preferences ora further command received from the user. When the source display is tobe altered, the displayed object movement module 2024, in step 2116,alters the source display to remove the displayed object. When thesource display is not to be altered, the displayed object movementmodule 2024, in step 2120, continues to display the displayed object.

Operation of Presence Reporting Module 2056

A presence reporting module considers local laws, individual (orcontactee) context, and other factors in determining whether anindividual is present (e.g., for unified communications) and, if so, bywhat communication channel(s). Local laws, for example, may prohibitcellular calls and/or texting and/or tweeting while the car is inmotion. In that event, a permissible communication channel, such asemail or paging, is reported to the presence service 1500. The contextcould include, for example, the contactee is in the driver's seat (asdetermined by an on board sensor, such as a seating sensor), and thelike), the vehicle is in motion, the vehicle is parked, the contactee isabsent from vehicle (as determined by an on board sensor, such as aseating sensor, and the like), the contactee is currently using his orher corresponding input/output system and therefore is or is notavailable (depending on contactee preference), a current seatingposition of the contactee (e.g., whether the contactee is a driver orpassenger), a current geographical and/or geopolitical location of thevehicle, and so on. Other factors include, for example, the on boardcommunication system and/or external computational device(s) 1532 arecurrently out of cellular phone range, the on board communication systemand/or external computational device(s) 1532 are currently roaming, thewireless connection, such as over a cellular network, with the on boardcommunication system and/or external computational device(s) iscurrently unacceptable (e.g., unacceptably low signal-to-noise ratio orquality or grade of service), and the like.

With reference to FIG. 29, the presence reporting module 2056, in step2900, detects a stimulus, such as a passage of time, a query by thepresence service 1500, an incoming or inbound contact, a change in usercontext, a change in the applicable local law due to a change inlocation of the vehicle, a change in contactee context, or a change inanother factor.

In step 2904, the presence reporting module 2056 collects the context ofthe contactee, such as by querying on board sensors 1516, a input/outputsystem 1520 corresponding to a seating location of the contactee todetermine a current state of the input/output system (operational ornon-operational) and/or activity of the contactee (e.g., web surfing,playing media, engaged in a phone call, etc.), an external computationaldevice 1532 associated with the contactee, and/or the transceiver 1508and/or network controller 1528 for information regarding the availablenetworks for a communication and/or the quality of a connection overeach network.

In decision diamond 2908, the presence reporting module 2056 determineswhether the previously reported presence information requires updating(e.g., the previously reported presence information is no longer validdue a sensed change). When no update is required, the presence reportingmodule 2056 returns to step 2900. When an update is required, thepresence reporting module 2056 proceeds to step 2912.

In step 2912, the presence reporting module 2056 reports the update(s)(or changes to the previously reported presence information) to thepresence service 1500.

In step 2916, the presence service 1500 receives the update(s) andupdates the current presence information for the associated contactee.

Operation of Social Networking Module 2070

An operation of the social networking module 2070 will now be discussedwith reference to FIG. 30.

Social networking among vehicles can add a new dimension to driving. Forexample, an operator can socially network with a friend driving in thenext lane. Although this can be done with cell phones, it can bedifficult to retrieve the number while driving let alone to dial itwithout increasing accident risk. Rather than fuming silently, occupantsof different vehicles can conduct a social round table as they sit ingridlock. If an operator wanted to communicate with another car, he orshe could address it using the license plate number.

There are a myriad of other examples of socially networked vehicles.Socially networked vehicles, for example, can enable multiple cars toconnect while on car trips to share information about how much gas isleft in the fuel tanks, competing fuel economy between the cars, sharedroutes, and land marks and gas stations on the route ahead. Sociallynetworked vehicles can record the real-time fuel economy of a vehicleand then compare that fuel economy to peers, thereby enabling the driverto see other drivers that have driven the same, or similar routes, andreceive suggestions from other drivers on the best route for the bestfuel economy. A ride-sharing social network can encourage ad hoccarpooling and provide a rating and recommendation system for its users.Socially networked vehicles can play games with one another. Since thegame could have access to car metrics, games could incorporate actualcar data, such as speed, fuel, etc. Games could simulate what wouldhappen if an operator drove the way he or she wanted to. Kids insocially networked vehicles can play games against one another.

With reference to FIG. 30, the processing module of a vehicle receives astimulus in step 3000. The stimulus can be a request by a user toinitiate a social network with a vehicle identified by the userproviding the license plate number, receipt of a request for initiatinga social networking session from another vehicle, the determination thata vehicle of a socially networked contact is available to initiate asocial networking session, and the like.

In step 3004, the social networking module 2070 identifies the vehiclesin wireless communication with the selected vehicle and having one ormore occupants in a social networking relationship with a currentvehicle occupant.

In step 3008, the social networking module 2070 determines whether ornot to initiate a social networking session. This can be determined byreceiving user input, predetermined rules provided by the user, legalrestrictions on the ability of the current or other vehicle to engage ina social networking session, and the like.

When a social networking session is to be initiated, the socialnetworking module 2070, in step 3012, initiates the session.

In optional step 3016, the social networking module 2070 collectsvehicle information and provides the information to the sociallynetworked vehicle. The other vehicle, in return, can provide itscollected vehicle information.

In step 3020, the social networking module terminates or suspends thesession when a vehicle occupant leaves one of the socially networkedvehicles and/or at the request of a vehicle occupant.

After step 3020 or when no social networking session is to be initiated(decision diamond 3008), the social networking module 2070 returns tostep 3000.

The exemplary systems and methods of this disclosure have been describedin relation to vehicle processing modules. However, to avoidunnecessarily obscuring the present disclosure, the precedingdescription omits a number of known structures and devices. Thisomission is not to be construed as a limitation of the scopes of theclaims. Specific details are set forth to provide an understanding ofthe present disclosure. It should however be appreciated that thepresent disclosure may be practiced in a variety of ways beyond thespecific detail set forth herein.

Furthermore, while the exemplary aspects, embodiments, and/orconfigurations illustrated herein show the various components of thesystem collocated, certain components of the system can be locatedremotely, at distant portions of a distributed network, such as a LANand/or the Internet, or within a dedicated system. Thus, it should beappreciated, that the components of the system can be combined in to oneor more devices, such as a vehicle computer system, a Personal Computer(PC), laptop, netbook, smart phone, Personal Digital Assistant (PDA),tablet, etc., or collocated on a particular node of a distributednetwork, such as an analog and/or digital communications network, apacket-switch network, or a circuit-switched network or collocated on aparticular node of a distributed network, such as an analog and/ordigital communications network, a packet-switch network, or acircuit-switched network. It will be appreciated from the precedingdescription, and for reasons of computational efficiency, that thecomponents of the system can be arranged at any location within adistributed network of components without affecting the operation of thesystem. For example, the various components can be located in a server.Similarly, one or more functional portions of the system could bedistributed between a communications device(s) and an associatedcomputing device.

Furthermore, it should be appreciated that the various links connectingthe elements can be wired or wireless links, or any combination thereof,or any other known or later developed element(s) that is capable ofsupplying and/or communicating data to and from the connected elements.These wired or wireless links can also be secure links and may becapable of communicating encrypted information. Transmission media usedas links, for example, can be any suitable carrier for electricalsignals, including coaxial cables, copper wire and fiber optics, and maytake the form of acoustic or light waves, such as those generated duringradio-wave and infra-red data communications.

Also, while the flowcharts have been discussed and illustrated inrelation to a particular sequence of events, it should be appreciatedthat changes, additions, and omissions to this sequence can occurwithout materially affecting the operation of the disclosed embodiments,configuration, and aspects.

A number of variations and modifications of the disclosure can be used.It would be possible to provide for some features of the disclosurewithout providing others.

For example in one alternative embodiment, the application store isapplied in a vehicle other than a wheeled or tracked vehicle. Forexample, the application store can be implemented in an aircraft, boat,ship, and the like.

In another alternative embodiment, the application store can include notonly media player software but also media itself. Media, for example,can involve one or more media types (e.g., audio and/or video). Mediacan thus refer to music, movies, videos, audio books, pictures, screensavers, display wallpaper, and the like.

In yet another embodiment, the systems and methods of this disclosurecan be implemented in conjunction with a special purpose computer, aprogrammed microprocessor or microcontroller and peripheral integratedcircuit element(s), an ASIC or other integrated circuit, a digitalsignal processor, a hard-wired electronic or logic circuit such asdiscrete element circuit, a programmable logic device or gate array suchas PLD, PLA, FPGA, PAL, special purpose computer, any comparable means,or the like. In general, any device(s) or means capable of implementingthe methodology illustrated herein can be used to implement the variousaspects of this disclosure. Exemplary hardware that can be used for thedisclosed embodiments, configurations and aspects includes computers,handheld devices, telephones (e.g., cellular, Internet enabled, digital,analog, hybrids, and others), and other hardware known in the art. Someof these devices include processors (e.g., a single or multiplemicroprocessors), memory, nonvolatile storage, input devices, and outputdevices. Furthermore, alternative software implementations including,but not limited to, distributed processing or component/objectdistributed processing, parallel processing, or virtual machineprocessing can also be constructed to implement the methods describedherein.

In yet another embodiment, the disclosed methods may be readilyimplemented in con junction with software using object orobject-oriented software development environments that provide portablesource code that can be used on a variety of computer or workstationplatforms. Alternatively, the disclosed system may be implementedpartially or fully in hardware using standard logic circuits or VLSIdesign. Whether software or hardware is used to implement the systems inaccordance with this disclosure is dependent on the speed and/orefficiency requirements of the system, the particular function, and theparticular software or hardware systems or microprocessor ormicrocomputer systems being utilized.

In yet another embodiment, the disclosed methods may be partiallyimplemented in software that can be stored on a storage medium, executedon programmed general-purpose computer with the cooperation of acontroller and memory, a special purpose computer, a microprocessor, orthe like. In these instances, the systems and methods of this disclosurecan be implemented as program embedded on personal computer such as anapplet, JAVA® or CGI script, as a resource residing on a server orcomputer workstation, as a routine embedded in a dedicated measurementsystem, system component, or the like. The system can also beimplemented by physically incorporating the system and/or method into asoftware and/or hardware system.

Although the present disclosure describes components and functionsimplemented in the aspects, embodiments, and/or configurations withreference to particular standards and protocols, the aspects,embodiments, and/or configurations are not limited to such standards andprotocols. Other similar standards and protocols not mentioned hereinare in existence and are considered to be included in the presentdisclosure. Moreover, the standards and protocols mentioned herein andother similar standards and protocols not mentioned herein areperiodically superseded by faster or more effective equivalents havingessentially the same functions. Such replacement standards and protocolshaving

The present disclosure, in various aspects, embodiments, and/orconfigurations, includes components, methods, processes, systems and/orapparatus substantially as depicted and described herein, includingvarious aspects, embodiments, configurations embodiments,subcombinations, and/or subsets thereof. Those of skill in the art willunderstand how to make and use the disclosed aspects, embodiments,and/or configurations after understanding the present disclosure. Thepresent disclosure, in various aspects, embodiments, and/orconfigurations, includes providing devices and processes in the absenceof items not depicted and/or described herein or in various aspects,embodiments, and/or configurations hereof, including in the absence ofsuch items as may have been used in previous devices or processes, e.g.,for improving performance, achieving ease and\or reducing cost ofimplementation.

The foregoing discussion has been presented for purposes of illustrationand description. The foregoing is not intended to limit the disclosureto the form or forms disclosed herein. In the foregoing DetailedDescription for example, various features of the disclosure are groupedtogether in one or more aspects, embodiments, and/or configurations forthe purpose of streamlining the disclosure. The features of the aspects,embodiments, and/or configurations of the disclosure may be combined inalternate aspects, embodiments, and/or configurations other than thosediscussed above. This method of disclosure is not to be interpreted asreflecting an intention that the claims require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive aspects lie in less than all features of a singleforegoing disclosed aspect, embodiment, and/or configuration. Thus, thefollowing claims are hereby incorporated into this Detailed Description,with each claim standing on its own as a separate preferred embodimentof the disclosure.

Moreover, though the description has included description of one or moreaspects, embodiments, and/or configurations and certain variations andmodifications, other variations, combinations, and modifications arewithin the scope of the disclosure, e.g., as may be within the skill andknowledge of those in the art, after understanding the presentdisclosure. It is intended to obtain rights which include alternativeaspects, embodiments, and/or configurations to the extent permitted,including alternate, interchangeable and/or equivalent structures,functions, ranges or steps to those claimed, whether or not suchalternate, interchangeable and/or equivalent structures, functions,ranges or steps are disclosed herein, and without intending to publiclydedicate any patentable subject matter.

1-20. (canceled)
 21. A vehicle, comprising: a non-transient, tangiblecomputer readable memory; a computational module selector to identifyand select a computational module from among plural computation modulesin communication with the computational module selector to perform aselected task, operation, and/or function, the selected task, operation,and/or function having performance requirements, wherein each of theplural computation modules has processing capabilities and operatingsystem capabilities; wherein at least a pair of the plural computationmodules has non-identical processing capabilities wherein one of thepair has a cellular capability and the other of the pair does not have acellular capability; a network selector module to select one of pluralcommunication networks local to the vehicle for transmitting a selectedsignal and wherein the network selector module selects one of pluralcommunication networks local to the vehicle for transmitting a selectedsignal based on one or more of network/node status, signal/noise ratio,type of signal, available and/or unavailable bandwidth, networkperformance parameter(s), and quality of service, wherein the networkselector module configures the selected signal in accordance with theselected network's transmission protocol; wherein the computationalmodule selector selects a computational module from among the pluralcomputation modules that has processing capabilities that satisfy theperformance requirements of the selected task, operation, and/orfunction; wherein each of the computational module selector, computationmodules and the network selector module are stored in the non-transient,tangible computer readable memory.
 22. The vehicle of claim 21, whereinthe vehicle further comprises a plurality of processing modules, a firstprocessing module being in an active mode whereby the first processingmodule is in primary control of at least most vehicle functions and asecond processing module being in a standby mode whereby the secondprocessing module is ready to assume primary control of at least mostvehicle functions, wherein the first and second processing modules arein wireless communication with one another, and wherein a state of thesecond processing module is maintained substantially in synchronicitywith a state of the first processing module to a enable a statefulfailover from the first processing module to the second processingmodule, wherein each of the afore-mentioned modules are stored in anon-transient, tangible computer readable memory.
 23. The vehicle ofclaim 21, wherein the vehicle further comprises an arbitration module toarbitrate hand-off conflicts between duplicated first and secondprocessing modules and wherein the arbitration module selects one of thefirst and second processing modules to currently possess and/or own atoken, the token indicating which processing module is an activeprocessing module and/or which processing module is a standby processingmodule, wherein each of the afore-mentioned modules are stored in anon-transient, tangible computer readable memory.
 24. The vehicle ofclaim 23, wherein the vehicle further comprises a health check module todetermine a corresponding state of health of each of the duplicatedfirst and second processing modules to perform at least one of criticaland non-critical tasks, functions, and operations and wherein the healthcheck module performs a check and/or test, in response to an internallygenerated interrupt and/or request to determine a selected processingmodule's ability to perform critical and/or non-critical vehicle tasks,functions, and/or operations, assign a score to the selected processingmodule based on the check and/or test results, and compare the score toone or more thresholds and/or to a score of a different processingmodule to determine a state of health to determine a state of health ofthe selected processing module, wherein each of the afore-mentionedmodules are stored in a non-transient, tangible computer readablememory.
 25. The vehicle of claim 21, wherein the vehicle furthercomprises a displayed object movement module to move displayed objectsfrom a source input/output system to a target input/output system, thesource and target input/output systems corresponding to differentvehicle occupants and wherein the displayed object movement moduleselects the target input/output system from among plural input/outputsystems on board the vehicle based on input from a user of the sourceinput/output system, wherein each of the afore-mentioned modules arestored in a non-transient, tangible computer readable memory.
 26. Thevehicle of claim 21, wherein the vehicle further comprises a mediafilter module to apply a selected rule to filter third party sourcedsignals received by a vehicle processing module for presentation to avehicle occupant via a corresponding input/output system and wherein theselected rule is one or more of a whitelist, blacklist, user preference,sensed occupant context, and/or governing federal, state, provincial,and/or local law and/or regulation applicable to a current sensedspatial location of the vehicle, wherein each of the afore-mentionedmodules are stored in a non-transient, tangible computer readablememory.
 27. The vehicle of claim 21, wherein the vehicle furthercomprises a diagnostic module to receive a warning and/or error signalfrom a vehicle component and select a destination for the signal, thepossible destinations including a vehicle input/output system to presentthe warning and/or error to a vehicle occupant, an emergency serviceprovider, an emergency responder, and a remotely located diagnosticservice to diagnose a cause of the warning and/or error signal andwherein the diagnostic module provides the warning and/or error signalto the vehicle occupant and interactively communicates a likely cause ofthe warning and/or error signal to the occupant and receives a commandfrom the occupant to contact one or more of an emergency serviceprovider, an emergency responder, and a remotely located diagnosticservice, wherein each of the afore-mentioned modules are stored in anon-transient, tangible computer readable memory.
 28. The vehicle ofclaim 21, wherein the vehicle further comprises a remote control moduleto receive a request from a remote source to command a vehicle function,authenticate the requestor, and, when successfully authenticated andwhen privileged to request the performance of the vehicle function,execute or cause execution of the request and wherein the remote controlmodule is associated with one or more of the vehicle owner, a lawenforcement authority, a lender associated with a loan having thevehicle as collateral, and a vehicle manufacturer and wherein therequested vehicle function is executed or caused to be executednotwithstanding a contrary command from the vehicle operator, whereineach of the afore-mentioned modules are stored in a non-transient,tangible computer readable memory.
 29. The vehicle of claim 21, whereinthe vehicle further comprises a media controller module to receive amedia stream from a remote node, identify which of a plurality ofvehicle input/output systems are disabled due to operator command and/oras a result of a rule, and, when enabled, provide the media stream to aninput/output system associated with an associated vehicle occupant andwherein the media controller module, in a dependent mode, providescommon content synchronously to each of the input/output systems and, inan independent mode, provides different content to different ones of theinput/output systems, wherein each of the afore-mentioned modules arestored in a non-transient, tangible computer readable memory.
 30. Thevehicle of claim 21, wherein the vehicle further comprises aninstallation supervisor module to determine, for a newly installedsoftware and/or hardware and/or other component, whether the newlyinstalled component satisfies defined functional and/or source or reuserequirements and/or restrictions for the component and/or licenserestrictions, and, when satisfied, create data structures in thecomponent and/or a memory in the vehicle to bind the component to thecurrent vehicle and thereby prevent the component from communicatingwith a processing module in a different vehicle and wherein the newlyinstalled software and/or hardware and/or other component is one or moreof an on-board sensor, a processing module or component thereof, asoftware application, a circuit board, an expansion module or componentthereof, a critical or non-critical device, and a cellular upgrademodule, wherein each of the afore-mentioned modules are stored in anon-transient, tangible computer readable memory.
 31. The vehicle ofclaim 21, wherein the plural computational modules comprise one or morevehicle processing devices and one or more occupant computationaldevices, the one or more occupant computational devices comprising oneor more of a mobile phone, personal digital assistant, tablet computer,and laptop computer.
 32. The vehicle of claim 21, wherein the pluralcomputational modules comprise multiple software applicationscorresponding to different versions, releases, and/or vendors of acommon type of software application.
 33. The vehicle of claim 21,wherein the vehicle further comprises a network security module toisolate a component encountering a security breach and/or isolate aprimary processing module from one or more other components in a localvehicle network and wherein the network security module filters and/orprohibits communications between the isolated one of the componentand/or processing module with other network components, wherein each ofthe afore-mentioned modules are stored in a non-transient, tangiblecomputer readable memory.
 34. The vehicle of claim 21, wherein thevehicle further comprises a network controller module to cacheautomatically streaming media in response to a vehicle state change,function, and/or operation and wherein the network controller modulecaches automatically streaming media in response to the vehicle statechanging from a parked state to an unparked state, wherein thecomputational module selector continuously checks if excess processingpower is available from at least among the plural computation modules,an expansion module and an external computational device, whereby theselected task, operation and/or function is off-loaded, wherein each ofthe afore-mentioned modules are stored in a non-transient, tangiblecomputer readable memory.
 35. The vehicle of claim 21, wherein thevehicle further comprises a unified communications presence reportingmodule to determine whether a vehicle occupant is present and/or by whatcommunication channel to contact the occupant based on a requirement ofa law applicable to a current location of the vehicle and wherein theunified communications presence reporting module determines that thevehicle occupant is the operator of the vehicle and that the vehicleoperator is not present by a selected communication channel when thevehicle is in motion, wherein each of the afore-mentioned modules arestored in a non-transient, tangible computer readable memory.
 36. Thevehicle of claim 21, wherein the vehicle further comprises a socialnetworking module to enable processing modules of different vehicles towirelessly connect to exchange vehicle information, wherein each of theafore-mentioned modules are stored in a non-transient, tangible computerreadable memory.
 37. The vehicle of claim 21, wherein at least one ofthe plural computation modules is a software application of an on boardor portable device located physically within the vehicle.
 38. Thevehicle of claim 37, wherein the selected task, operation, and/orfunction is running a software application, wherein the computationalmodule selector selects a computational module from among the pluralcomputation modules based on operating system capabilities that satisfythe software application operating system performance requirements. 39.The vehicle of claim 38, wherein the vehicle further comprises adisplay, wherein the software application is displayed on the display.40. The vehicle of claim 39, wherein the display is configured to allowthe user to interact with the software application.